快速排序
2018-09-04 20:22
92 查看
快速排序的步骤如下:
(1)设k = a[0],将k挪到适当位置,使得比k小的元素都在k左边,比k大的元素都在k右边,和k相等的,不关心在k左右出现均可。
(2)把k左边的部分快速排序
(3)把k右边的部分快速排序
代码如下:
[code]#include<iostream> using namespace std; void swap(int &a,int &b) { int tmp = a; a = b; b = tmp; } void quicksort(int a[],int s,int e) { if(s >= e) return; int k = a[s]; int i = s,j = e; while(i != j) { while(j > i && a[j] >= k) --j; swap(a[i],a[j]); while(i < j && a[i] <= k) ++i; swap(a[i],a[j]); } quicksort(a,s,i - 1); quicksort(a,i + 1,e); } int a[] = {93,27,30,2,8,12,2,8,30,89}; int main() { int size = sizeof(a) / sizeof(int); quicksort(a,0,size - 1); for(int i = 0;i < size; i++) cout << a[i] << ","; cout << endl; return 0; }
阅读更多
相关文章推荐
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- 清橙OJ 1082 查找第K小元素 -- 快速排序
- 排序算法---基础算法(冒泡排序,快速排序,选择排序,直接插入排序,桶排序)
- 快速排序
- 【数据结构笔记】7:非递归快速排序
- 排序--插入排序、希尔排序、快速排序、桶排序(代码)
- 排序算法__快速排序
- 8.3.2快速排序
- 快速排序总结
- 插入排序、冒泡排序、选择排序、快速排序、堆排序、归并排序算法比较
- 快速排序、堆排序、归并排序比较
- 快速排序和二分查找算法的实现C语言
- 排序算法——快速排序
- java 快速排序
- 快速排序-改进
- 快速排序与快速选择算法(quick sort and quick select algorithm)
- 冒泡,插入,折半插入,希尔,快速,简单选择排序的源代码总结
- 冒泡排序,插入排序,选择排序和快速排序-C语言
- js两种实用的排序算法——冒泡、快速排序