快速排序
来源:互联网 发布:学习数据库心得体会 编辑:程序博客网 时间:2024/05/16 23:52
48 57 28 39 63 31 90 64 6 87
i j
x=48, i=0, j=length-1;
把他看成(48放入了x中):
57 28 39 63 31 90 64 6 87
i j
第一趟:
1.先从后往前找第一个比x小的数, j移到数值6的位置,然后把6填到下标为i的地方
6 57 28 39 63 31 90 64 87
i j
2.从前往后找第一个比x大的数,把他放到j处
6 28 39 63 31 90 64 57 87
i j
3.再从后往前:
6 31 28 39 63 90 64 57 87
i j
4.再从前往后:
6 31 28 39 63 90 64 57 87
i j
5.再从后往前,此时i==j,把x填到这个空缺处,结束。
6 31 28 39 48 63 90 64 57 87
i
j
之后再对48左边和右边做同样的操作。
代码:
void quick_sort(int data[], int left, int right){if (data == NULL || left < 0 || right < 0){return;}if (left < right){int i = left;int j = right;int pivot = data[i];while (i < j){while (i < j && data[j] > pivot) {--j;} if (i < j){data[i++] = data[j];}while (i < j && data[i] < pivot){++i;}if (i < j){data[j--] = data[i];} }data[i] = pivot;quick_sort(data,left,i-1); quick_sort(data,i+1, right);} }
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 创业之谈-相信勇气,积累经验
- Java反射 - 简单的给Bean赋值和取值
- Leetcode: House Robber II
- 5注21选5升序彩票(室友一下午才解决,我只用了1个小时,得瑟一下子)
- HDU 5352 MZL's City(网络流)
- 快速排序
- HTML入门笔记
- 横竖屏切换时候Activity的生命周期
- java使用socket实现文件传输时的接收判断
- 为了点资源
- WXHL 学习总结连载(四)
- 解决js跨域问题的思路及实践
- Linux下安装NVIDIA显卡驱动(无集显)
- windows平台select使用