QuickSort
1. Time Complexity : O(nlongn) (比其他O(nlongn) 快)
2. Step:
1. 选择key
2. 排序, 小于key的在一端,大于key的在另一端
3. 递归
3. CODE:
1 #define SWAP(a, b) do {\ 2 typeof(a) tmp;\ 3 tmp = (a);\ 4 (a) = (b);\ 5 (b) = tmp;\ 6 } while(0) 7 8 int QucikSort(int *a, int len) 9 { 10 int i = 0, j = len - 1; 11 int flag = 0; 12 13 if (len <= 1) 14 return 0; 15 16 while (i < j) { 17 if (a[i] > a[j]) { 18 SWAP(a[i], a[j]); 19 flag = 1 - flag; 20 } 21 22 flag == 0 ? i++ : j--; 23 } 24 25 QucikSort(a, i); 26 QucikSort(a + i, len - i); 27 28 return 0; 29 }
浙公网安备 33010602011771号