常用算法——快速排序
来源:互联网 发布:mac下制作dmg到u盘 编辑:程序博客网 时间:2024/06/07 11:55
1.什么是快速排序
- 选定数组中一个数为基准数(此文以数组第一个数作为基准数,个人习惯如此)。
- 分别从最左和最右遍历数组,将大于基准数的数放在其右边,小于基准数的数放在其左边。
递归方式重复步骤2,直到各区间只有一个数或为空。
*快速排序被认为是所有O(N*logN)排序算法中效率最高的。
2.时间复杂度&空间复杂度
最好情况:O(N*logN)
平均情况:O(N*logN)
最坏情况:O(N^2)
空间占用S(1),只需花费常数级的空间。
3.代码实现(Java实现)
public class QuickSort { public void sort(int temp[]) { quickSort(temp, 0, temp.length - 1); } private void quickSort(int[] temp, int low, int high) { if (low < high) { int des = getDes(temp, low, high); quickSort(temp, low, des-1); quickSort(temp, des+1, high); } } private int getDes(int[] temp, int low, int high) { int t = temp[low]; //缓存基准数 while (low < high) { while (low < high && temp[high] > t) { high--; } temp[low] = temp[high]; while (low < high && temp[low] < t) { low++; } temp[high] = temp[low]; } temp[low] = t; //将基准数赋值给空缺位 return low; }}
0 0
- 常用算法——快速排序
- 常用算法——快速排序
- 常用排序算法——快速排序法
- 常用排序算法实现——快速排序
- 算法3:最常用的排序——快速排序
- 算法3:最常用的排序——快速排序
- 常用排序算法——插入排序,快速排序,归并排序,堆排序,计数排序
- 常用算法-快速排序
- 常用排序算法--快速排序
- 常用排序算法--快速排序
- 常用排序算法-快速排序
- 排序算法—快速排序
- 排序算法—快速排序
- 【坐在马桶上看算法】算法3:最常用的排序——快速排序
- 【坐在马桶上看算法】算法3:最常用的排序——快速排序
- 【坐在马桶上看算法】算法3:最常用的排序——快速排序
- 【啊哈!算法】算法3:最常用的排序——快速排序
- 【啊哈!算法】算法3:最常用的排序——快速排序
- iOS开发笔记--使用blend改变图片颜色
- u-boot-2016.01分析s3c2410启动过程
- 黑马程序员 OC中的block的基础理解
- 两种方式获取Thrift调用的客户端IP地址
- iOS开发笔记--图片拉伸技巧
- 常用算法——快速排序
- Xcode 插件优缺点对比(推荐 20 款插件)
- 【解决方案】谈公众号红包的正确打开方式--传奇创世
- Linux常用命令大全
- (一)由浅入深java集合--HashMap原理
- NFC在Android平台的架构与移植
- 未来编程的9大猜想
- iOS开发笔记--UIView中的坐标转换
- JDK中的URLConnection参数详解(转)