快速排序

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);

 

以上是关于快速排序的主要内容,如果未能解决你的问题,请参考以下文章

算法排序之堆排序

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段

如何使用sublime代码片段快速输入PHP头部版本声明

代码片段如何使用CSS来快速定义多彩光标

vs2003:快速片段工具