快速排序
来源:互联网 发布:奇迹暖暖每章套装知乎 编辑:程序博客网 时间:2024/06/05 08:21
void quickSort (int a[] , int low , int high){ if (high < low + 2) { return; } int start = low; int end = high; int temp; while (start < end) {// 找到第一个比a[low]数值大的位子start while ( ++start < high && a[start] <= a[low]);// 找到第一个比a[low]数值小的位子end while ( --end > low && a[end] >= a[low]); // 进行到此,a[end] < a[low] < a[start],但是物理位置上还是low < start < end,因此接下来交换a[start]和a[end],于是[low,start]这个区间里面全部比a[low]小的,[end,hight]这个区间里面全部都是比a[low]大的 if (start < end) { temp = a[start]; a[start]=a[end]; a[end]=temp; } // 在GCC编译器下,该写法无法达到交换的目的,a[start] ^= a[end] ^= a[start] ^= a[end];编译器的问题 } // 进行到此,[low,end]区间里面的数都比a[low]小的,[end,higt]区间里面都是比a[low]大的,把a[low]放到中间即可 // 在GCC编译器下,该写法无法达到交换的目的,a[low] ^= a[end] ^= a[low] ^= a[end];编译器的问题 temp = a[low]; a[low]=a[end]; a[end]=temp; // 现在就分成了3段了,由最初的a[low]枢纽分开的 quickSort(a, low, end); quickSort(a, start, high);}
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- MySQL技术内幕InnoDB存储引擎学习笔记(第六章)
- CUDA编程_DEBUG_01
- 监听activeMQ的状态
- 二叉树前、中、后序遍历【非递归】【LintCode测试平台】
- Linux下自动检测USB热插拔
- 快速排序
- 简单写一个加入组播组接收到数据的代码
- Android studio真的很坑啊,智能还很远,麻烦倒是挺多
- APP直播源码、云豹直播破解版
- 顺序表应用3:元素位置互换之移位算法
- java内部类学习笔记
- 水经注下载的DAT文件用什么软件打开
- KVM源代码分析3:CPU虚拟化
- poj2253Frogger(最短路变形)及poj1797Heavy Transportation(最大生成树)