排序算法之快排
来源:互联网 发布:单词社交网络可靠吗 编辑:程序博客网 时间:2024/04/29 06:29
快速排序是常见排序算法中速度最快的,最好的和平均时间复杂度为O(nlogn),空间复杂度为O(nlogn),是一个不稳定的排序方法。
其实现过程如下:
1、取出第开始的元素作为测试值,先从右侧开始遍历;
2、将测试值与右侧值比较,右侧值若大于等于测试值,则继续左移再与测试值比较。若右侧遍历到测试值的下一个元素仍找不到小于测试值的元素,则证明测试值为当前序列中最小的元素,其位置不变,跳过步骤3直接执行步骤4。若找到右侧小于测试值的元素,将此元素赋给测试值所在的位置,执行步骤3;
3、然后再从左侧测试值的下一个元素开始遍历,将其与测试值比较。若左侧遍历到步骤2之前的元素时,仍找不到大于测试值的元素,则将测试值赋给步骤2所找到的元素所在的位置,即将测试值所在的元素与找到的元素交换位置,执行步骤4。若找到大于测试值的元素,将此元素赋给在步骤2中找到的右侧小于测试值的元素的位置,将测试值赋给此元素所在的位置;
4、至此保证测试值左侧均小于等于测试值,右侧均大于测试值,即在测试值处将原序列转换为左侧均小于右侧的序列,再次分别对测试值分开的两边序列((:,i-1)和(i+1,:),除去i)分别递归进行上述1、2、3过程,直到所有元素均有序。
0 0
- 排序算法之快排
- 排序算法之快排
- 排序算法之快排
- 排序算法之快排
- 排序算法之快排
- 排序算法之快排
- 排序算法系列之快排
- 排序算法之shell,归并,快排
- 排序算法--快排
- 算法 排序 快排
- 算法--排序--快排
- 排序 之 快排
- 排序之 快排
- 排序之-----快排
- 排序之快排
- 排序之快排
- 排序算法之交换排序(冒泡和快排)
- 一、排序算法 快排
- c++指针输出
- 【Spark Mllib】决策树,随机森林——预测森林植被类型
- 从机器学习谈起
- CF 482 B. Interesting Array 线段树
- 数据结构与算法简记:通过前序中序或中序后序构建二叉树
- 排序算法之快排
- 程序员修炼之道——从小工到专家
- 10年的WEB前端成长之路
- 排序算法——选择排序
- Java基础之浅拷贝与深拷贝
- c#上传图片的代码
- 国内 Azure 正式支持红帽企业 Linux
- Bitmap.createBitmap函数有6个重载方法
- md5.js 插件