快速排序代码
using System;
using System.Collections.Generic;
using System.Text;
namespace temp
{
public class QuickSort
{
/// <summary>
/// 排序
/// </summary>
/// <param name="numbers">待排序数组</param>
/// <param name="left">数组第一个元素索引Index</param>
/// <param name="right">数组最后一个元素索引Index</param>
private static void Sort(int[] numbers,int left,int right)
{
//左边索引小于右边,则还未排序完成
if (left < right)
{
//取中间的元素作为比较基准,小于他的往左边移,大于他的往右边移
int middle = numbers[(left + right) / 2];
int i = left - 1;
int j = right + 1;
while (true)
{
while (numbers[++i] < middle && i < right)
{ ;}
while (numbers[--j] > middle && j > 0)
{ ;}
if (i >= j) break;
Swap(numbers,i,j);
}
相关新闻>>
- 发表评论
-
- 最新评论 更多>>