快速排序
2017-02-08 14:28
113 查看
快速排序:
假设有n个数
à大 ß小
例如:3 4 1 8 2
i j
设一个基准数temp=a[0];
i从a[0]开始,j从a[n-1]开始;
从j先向左移动,只要找到比temp小的数,就停下;
然后i向右移动,只要遇到比temp大的数,就停下;
就交换a[i]和a[j]的位置;
3 2 1 8 4
i j
然后重复以上步骤;
3 1 2 8 4
i j
2 1 3 8 4
ij
然后i移动,当i==j时,把a[i]和数组头交换;
(2 1) 3 (8 4)
i j i j
temp=2 ij temp=8
a[j]<a[i],则交换位置
(1 2) 3 (4 8)
i j i j
就是这么简单!
假设有n个数
à大 ß小
例如:3 4 1 8 2
i j
设一个基准数temp=a[0];
i从a[0]开始,j从a[n-1]开始;
从j先向左移动,只要找到比temp小的数,就停下;
然后i向右移动,只要遇到比temp大的数,就停下;
就交换a[i]和a[j]的位置;
3 2 1 8 4
i j
然后重复以上步骤;
3 1 2 8 4
i j
2 1 3 8 4
ij
然后i移动,当i==j时,把a[i]和数组头交换;
(2 1) 3 (8 4)
i j i j
temp=2 ij temp=8
a[j]<a[i],则交换位置
(1 2) 3 (4 8)
i j i j
就是这么简单!
相关文章推荐
- 第七章快速排序之“采取“尾递归”和“三数取中”技术的快速排序”(思考题7-4、7-5)
- 前端算法之快速排序(JS版)
- 快速排序
- 图解快速排序
- 快速排序[优化枢轴及不必要的交换]
- 排序算法(4)----快速排序
- 快速排序
- 交换排序—快速排序(Quick Sort)
- 几种常见的排序(快速排序)
- 快速排序及c++实现
- 算法导论7-4思考题-快速排序中的堆栈深度-尾递归技术
- python 三行代码实现快速排序
- C语言的快速排序
- PAT (Basic Level) Practise (中文) 1045. 快速排序(25)
- 【编程珠玑】第十一章 排序 (插入排序和快速排序的深度优化)
- 快速排序
- 快速排序
- 排序算法(六):快速排序
- 快速排序
- “挖坑填坑”理解快速排序