【算法】快速排序法:Quicksort
来源:互联网 发布:tomcat下js文件未生效 编辑:程序博客网 时间:2024/04/30 17:40
/* 第一部分
快速排序算法是由C.A.R.Hoare教授于上世纪60年代提出的,它的中心思想是:
将一组数据分成两组,其中一组的所有元素值都要小于另一组,并在两组数据中不断的“左右划分”最终达到升序或降序的目的。
其中用于分隔两组数据的关键元素叫做中间数。Quicksort 巧妙的调用自身进行递归演算,依次变化中间数,直到两组中的关键元素重合。
C.A.R.Hoare教授
Quicksort也被称为“愉快的赌博”,因为它的“最坏情况运行时间”的成绩较差,但在大多数时候,它的性能是非常可观的!所以 尽管存在不稳定的因素,快速排序法也成为了排序算法最佳的实用选择。
*/
快速排序示意图(图像来自百度)
参考代码:(运行环境 Linux,clang)
代码注释:
代码的关键点在于 quicksort 函数,其中,最外层的while循环体中 还包含两个while循环,用于查找在中间数右侧,并且小于中间数(L[ j ]);和在中间数左侧,并且大于中间数(L[ i ])的元素,如果找到了,就将这个元素与中间数(key)调换位置,依次调整元素的位置,如上述代码,L[ i ] 和 L[ j ] 不断向中间数靠拢,最终与中间数重合,结束循环,跳出最外层的while
再将左右两组数组分别作为独立的数组重新带入quicksort函数式中,递归运算,得到新数列。
运行测试:
测试通过。
0 0
- 【算法】快速排序法:Quicksort
- 快速排序算法QuickSort
- 快速排序算法QuickSort
- 快速排序(QuickSort)算法
- QuickSort 快速排序算法
- QuickSort算法(快速排序)
- 快速排序(quicksort)算法实现
- Algorithms Quicksort 快速排序算法
- 快速排序(quicksort)算法实现
- 快速排序算法(QuickSort)
- 细说算法-------快速排序QuickSort
- QuickSort 标准快速排序算法
- 算法导论-------快速排序QuickSort
- 快速排序法 QuickSort
- 算法/排序算法/QuickSort快速排序
- 算法-排序-快速排序(QuickSort)分析
- 排序算法 之 快速排序(quicksort)
- java排序算法_014快速排序(Quicksort)
- ZigBee初探
- webfont 平台推荐
- 完美世界手游《圣斗士星矢》lua逻辑框架分析
- Python装饰器有趣实例探究
- c# C(m,n) 排列组合算法
- 【算法】快速排序法:Quicksort
- 平衡二叉排序树的各种算法
- Win7设置outlook2013开机自启动
- StringBuffer is dangerous when dealing with lonnnng Strings!!!
- Linux 环境下开发 常用指令
- 一、文件安全与权限
- 内存分布
- static与继承
- error LNK2005: __errno already defined in MSVCRTD.lib(MSVCR90D.dll)