Csharp实现快速排序
public void QuickSort(int[] arr, int left, int right) //快速排序 { //先从数列中去处一个数作为基准数 //分区过程,将比这个数大的数全放在他的右边,小于或者等于放在左边 //在对左右区间重复第二部 if (left < right) { int x = arr[left]; //基准数,把比她小或者等于他的放在他的左边,然后把比他大的放在右边 int i = left; int j = right; //用来循环 的标志位 while (i < j) { while (i < j) { if (arr[j] <= x) { arr[i] = arr[j]; break; } else { j--; //向左移动到下一个数字 } } //从前往后(从左向右)找到一个比x大的数字 while ( i < j) { if (arr[i] > x) { arr[j] = arr[i]; break; } else { i++; } } } arr[i] = x; QuickSort(arr, left, i - 1); //使用回调 QuickSort(arr, i + 1, right); } }