快速排序(python)
来源:互联网 发布:js判断按钮是否被点击 编辑:程序博客网 时间:2024/05/20 11:21
快排的思想主要是分治。选定数组的某个值作为比较用的key(代码中选用的是数组的最后一位),设定两个指针i和j,i一直指向第一个比key大的位置,j一直往后移动(直到倒数第二位),若j遇到比key小的,则j和i的数互换(i和j分别加一),否则,只有j向后移动(即:只有j加一),最后,将i和最后一位互换,则将数组分为i-1之前和i+1之后两个数组(i的数已经放在了正确的位置上)。返回i的位置,将i-1之前和i+1之后的数组继续排序。
from random import shuffledef quicksort(arr, p, r):if p < r:q = partion(arr, p, r)quicksort(arr, p, q-1)quicksort(arr, q+1, r)return arrdef partion(a, p, r):#select arr[r] to comparision.i = pfor j in range(p,r):if a[j] < a[r]:a[i], a[j] = a[j],a[i]i += 1j += 1a[i],a[r] = a[r], a[i]return iif __name__ == '__main__':arr = range(10)shuffle(arr)print 'original array is:\n',arrresult = quicksort(arr, 0, len(arr)-1)print 'quicksort result is:\n',result
0 0
- 快速排序(python)
- 快速排序(Python)
- 快速排序(python)
- 快速排序(python)
- 快速排序(Python实现)
- 快速排序(python实现)
- Python--排序--快速排序
- [排序] 快速排序(Python)
- 【python】python数据结构(七)——排序:快速排序
- Python(8) python中的冒泡排序、快速排序
- (四)快速排序-python实现
- 快速排序的实现(python)
- 快速排序及实现(python)
- 学Python(3)—快速排序
- python快速排序
- 快速排序Python实现
- python快速排序
- python实现快速排序
- 深入思考SDN的核心本质:从SDN=OpenFlow回到软件定义网络
- javascript面向对象编程
- d/D g/G h/H n/N p/P 你真的了解它们的区别吗?
- Android系统镜像文件的打包过程分析
- max_element和min_element
- 快速排序(python)
- leetcode刷题-题目2:逆波兰表达式计算
- vim的配置文件在哪?
- 微信js 大转盘抽奖
- 大康师傅你死定了
- ResourceProperties
- Python的函数参数传递:传值?引用?
- hive中使用sql语句需要注意的事项
- 关于 cpu core thread etc