分治之快速排序
2017-03-29 19:27
162 查看
取数组中首尾两个数作比较,按一定规则交换
#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++实现快速排序和随机化的快速排序
- 分治算法之快速排序
- C语言实现的快速排序,采用分治策略,递归实现
- 算法分析——分治思想之快速排序
- 分治与递归(二)--- 快速排序
- 递归与分治策略-----快速排序(C++)
- 快速排序(递归、分治、划分)
- 算法--排序--分治与快速排序
- 1007(分治法,快速排序,但还是时间超限)
- 分治思想之快速排序