快速排序
来源:互联网 发布:程序员为什么叫程序猿 编辑:程序博客网 时间:2024/05/21 10:37
自己写了一个很挫的程序,勉强能用吧,有时间再改进。
#include <iostream>void quickSort(int a[], int size) { if (size <= 1) { return; } if (size == 2) { if (a[0] > a[1]) { int tmp = a[0]; a[0] = a[1]; a[1] = tmp; } return; } int povit = a[0]; int j = size - 1; int i = 1; int hole = 0; while (true) { while (i < j && a[j] > povit) { j--; } if (i < j) { a[0] = a[j]; hole = j; while (i < j && a[i] < povit) { i++; } if (i < j) { a[j] = a[i]; a[i] = a[0]; hole = i; } else { break; } } else { break; } } a[hole] = povit; quickSort(&(a[0]), hole); quickSort(a + hole + 1, size - hole - 1);}int main(){ quickSort(ax, 7); //mergeSort(ax, 7); for (int i = 0; i < 7; i++) { std::cout << ax[i] << ", "; } std::cout << std::endl; while (true); return 0;}
快速排序最差的时间复杂度为O(N²),最好和平均时间复杂度都是O(NlogN)。
阅读全文
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- ListView下拉刷新和上拉加载原理
- mac上完整卸载删除.简单粗暴无脑:androidstudio删除方案
- JDBC-mysql,查询数据库信息
- centos 小插曲
- c++常用头文件
- 快速排序
- 一次关闭所有Activity方法探讨
- 消息转发机制与Aspects源码解析
- 简易DNS服务器搭建,适用小型公司
- Fragment概述
- 我在React使用中踩过的坑
- 修改npm安装的全局路径和配置环境变量的坑
- Github fork其他项目的分支与主干保持同步
- hashMap与HashTable区别