C++ 快速排序算法

匿名 (未验证) 提交于 2019-12-03 00:43:02

快速排序算法最坏的时间复杂度时o(n*n),期望的运行时间为o(nlgn)。

逻辑分析:

1 先从数组中选取一个数作为基数,可随机选择;

2 将数组中大于该基数的放在该基数右边,小于该基数的放在该基数左边;

3对左右两个数组重复第二步。

代码分析

数组a[]={2,1,4,5,3,8,7,9,0,6},该数组第一次分区时,left=0,right=10,假设随机基数为a[4]=3。

首先将a[0]和a[4]互换位置,数组a[]={3,1,4,5,2,8,7,9,6,0}。

进行第一次分区:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!