快速排序,优于堆排序
2018-03-23 16:43
176 查看
#include<iostream> using namespace std; void Qsort(int a[], int low, int high) { if (low >= high) { return; } int first = low; int last = high; int key = a[first];/*用字表的第一个记录作为枢轴*/ while (first < last) { while (first < last && a[last] >= key) { --last; } a[first] = a[last];/*将比第一个小的移到低端*/ while (first < last && a[first] <= key) { ++first; } a[last] = a[first]; /*将比第一个大的移到高端*/ } a[first] = key;/*枢轴记录到位*/ Qsort(a, low, first - 1); Qsort(a, first + 1, high); } int main() { int test[10] = { 15,84,34,21,81,61,35,16,48,68 }; Qsort(test, 0, 9); for (int i = 0; i < 10; i++) cout << test[i] << ' '; return 0; }
相关文章推荐
- C语言程序----排序(直接插入排序,SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序)
- 其他三种排序:堆排序,归并排序,快速排序
- 内部排序---快速排序、堆排序
- 快速排序、堆排序、归并排序简单比较
- 六种排序 冒泡 选择 插入 归并 快速 堆排序
- 数据结构面试之十一——排序2(归并、快速、堆排序)
- 七大内部排序算法总结(插入排序、希尔排序、冒泡排序、简单选择排序、快速排序、归并排序、堆排序)
- 冒泡排序,快速排序,堆排序比较
- 常用的排序算法(快速排序、插入排序、希尔排序、堆排序、冒泡排序、选择排序、归并排序)
- java实现七种排序 (插入排序, 希尔排序, 插入排序, 快速排序, 简单选择排序, 堆排序, 归并排序)
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 数据结构与算法总结——排序(二)归并排序,快速排序 和 堆排序
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
- 【数据结构】常用比较排序算法(包括:选择排序,堆排序,冒泡排序,选择排序,快速排序,归并排序)
- 冒泡排序 快速排序 选择排序 堆排序 直接插入排序 希尔排序 归并排序
- 数据结构之排序算法二:堆排序,快速排序,归并排序
- O(lgn)的三种排序,快速排序、归并排序、堆排序
- 算法初级02——荷兰国旗问题、随机快速排序、堆排序、桶排序、相邻两数的最大差值问题、工程中的综合排序算法
- 快速排序,归并排序,堆排序的java代码实现