排序——快速排序(quick sort)
来源:互联网 发布:cf网络异常又非法模块 编辑:程序博客网 时间:2024/05/16 15:52
快速排序(quick sort):通过一趟排序将要排序的数据分割成独立的两个部分,其中一个部分的所以数据都比另外一部分的所有数据都要小。
时间复杂度:O(nlgn)
实例:(边界值,选择数组的第一个元素作为边界值)
<pre name="code" class="cpp">#include "stdafx.h"#include <iostream>using namespace std;template<class T>void QuickSort(T data[], const int left, const int right){if (left >= right)return;int low = left;int hight = right;int key = data[low];while (low < hight){while (low < hight && data[hight] >= key){--hight;}data[low] = data[hight];while (low < hight && data[low] <= key){++low;}data[hight] = data[low];}data[low] = key;QuickSort(data, left, low);QuickSort(data, low + 1, right);}template<class T>void Sprint(T data[], int n){for (int i = 0; i < n; i++){cout << data[i] << " ";}cout << endl;}int _tmain(int argc, _TCHAR* argv[]){int data[] = { 0, 3, 5, 1, 4, 6, 2 ,11 };int n = sizeof(data) / sizeof(int); QuickSort(data, 0, n - 1);Sprint(data, n);return 0;}
0 0
- 排序——快速排序(quick sort)
- 交换排序—快速排序(Quick Sort)
- 交换排序—快速排序(Quick Sort)
- 交换排序—快速排序(Quick Sort)
- 交换排序—快速排序(Quick Sort)
- 快速排序(quick sort)
- 快速排序(quick sort)
- 快速排序(quick sort)
- 快速排序(Quick Sort)
- 快速排序(Quick sort)
- 快速排序(Quick Sort)
- 快速排序(Quick Sort)
- 快速排序(Quick Sort)
- 快速排序(Quick Sort)
- 快速排序(Quick Sort)
- Quick Sort(快速排序)
- 快速排序(quick sort)
- 快速排序(Quick-Sort)
- 数据库事务的4个特性理解
- android studio 去掉无用资源
- Android 开发中遇到的坑
- Linux下redis服务的安装
- 机器学习数据集-MNIST
- 排序——快速排序(quick sort)
- java的内部类
- ELK+redis搭建解析NGINX日志环境
- Yii建立组件
- android:使用gallery和imageSwitch制作可左右循环滑动的图片浏览器
- QuickFix/J (1):如何创建第一个程序
- HDU-2037 做个骑士,以梦为马
- session跨一级二级域名
- android 常用的存储路径