快速排序
Posted moujun1001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序相关的知识,希望对你有一定的参考价值。
总结一下快排的模板,O(NlogN)的时间复杂度还是比较实用的,以后直接拿板子套就行
1 int vec[100]; //定义将要排序的数组为全局变量 2 3 void quickSort(int left, int right) { 4 int i = 0, j = 0; 5 int t = 0, tmp = 0; 6 if (left > right) 7 return; 8 i = left; 9 j = right; 10 t = vec[left]; 11 while (i != j) { 12 while (vec[j] >= t && i < j) //升序 13 //while (vec[j] <= t && i < j) //降序 14 j--; 15 while (vec[i] <= t && i < j) //升序 16 //while (vec[i] >= t && i < j) //降序 17 i++; 18 if (i < j) { 19 tmp = vec[i]; 20 vec[i] = vec[j]; 21 vec[j] = tmp; 22 } 23 } 24 vec[left] = vec[i]; 25 vec[i] = t; 26 27 quickSort(left, i - 1); 28 quickSort(i + 1, right); 29 } 30 31 //注意主函数调用时的范围:quickSort(0, vec长度 - 1);
以上是关于快速排序的主要内容,如果未能解决你的问题,请参考以下文章