快排代码
目前用递归写,等我想明白了就用循环试试,据说循环比递归快
int QuickSort(int* arr, size_t len) { if (len <= 1)return 1; size_t left=0,right=len-1; int X=arr[left]; bool flag = false; while (left<right) { if (!flag&&arr[right] < X) { arr[left] = arr[right]; flag = !flag; } else if (flag&&arr[left] > X) { arr[right] = arr[left]; flag = !flag; } if (flag)left++; else right--; } arr[left] = X; QuickSort(arr, left); QuickSort(arr + left + 1, len - left - 1); return 0; }
浙公网安备 33010602011771号