博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实现快速排序算法
阅读量:4592 次
发布时间:2019-06-09

本文共 835 字,大约阅读时间需要 2 分钟。

快速排序算法的思想/特点

1.选取一个数字作为基准,(基数可以随机取,也可选取首位数字)
2.将数列第一位开始,依次与此数字比较,如果小于此数,将小数交换到左边,最后达到小于基准数的在左边,大于基准数的在右边,分为两个数组
3.分别对两个数组重复上述步骤
 
快速排序算法的时间复杂度:平均时间:O(nlog2n) (n倍的以2为底n的对数),   最坏情况: O(n2) ; 
对于大的、乱序串列一般认为是最快的已知排序
稳定性:不稳定

python实现快速排序算法的代码

def partition(arr, low, hight):    i = low - 1    for j in range(low, hight):        if arr[j] <= arr[hight]:            i = i + 1            arr[i], arr[j] = arr[j], arr[i]    arr[i + 1], arr[hight] = arr[hight], arr[i + 1]    return idef quick_sort(l, low, hight):    if low < hight:        key_Index = partition(l, low, hight)        quick_sort(l, low, key_Index)        quick_sort(l, key_Index + 1, hight)    else:        returnl = [5,8,1,3,15,12,0]quick_sort(l, 0, len(l) - 1)print("after sort:", l)# 运行后的结果为:after sort: [0, 1, 3, 5, 8, 12, 15]

 

转载于:https://www.cnblogs.com/aberwang/p/10497368.html

你可能感兴趣的文章
LeetCode 102. 二叉树的层次遍历
查看>>
CCF | 小中大
查看>>
LeetCode 589. N叉树的前序遍历
查看>>
LeetCode 145. 二叉树的后序遍历
查看>>
Java | JDK8下的ConcurrentHashMap#putValue
查看>>
LeetCode 144. 二叉树的前序遍历
查看>>
周总结
查看>>
作业13-网络java
查看>>
Qt加载lib文件
查看>>
element vuex 语音播报
查看>>
tomcat剖析(二)
查看>>
装机摸鱼日志--ubuntu16.04安装网易云音乐客户端
查看>>
eclipse中Android模拟器,DDMS看不到设备
查看>>
Flex 布局教程学习
查看>>
day11_rowid、rownum、表分类
查看>>
软件测试培训第4天
查看>>
Android:网络操作2.3等低版本正常,4.0(ICS)以上出错,换用AsyncTask异步线程get json...
查看>>
单次插入与批量插入时间对比
查看>>
python从excel读取的数据为数字时,自动加上.0转化为浮点型的解决
查看>>
IDEA 如何加上 tomcat
查看>>