Python快速排序算法实例分析
本篇章节讲解Python快速排序算法。分享给大家供大家参考,具体如下: 快速排序的时间复杂度是O(NlogN) 算法描述: ① 先从序列中取出一个数作为基准数 假设对 6,1,2,7,9,3,4,5,10,8 进行排序,首先在这个序列中随便找一个基准数(用来参照),比如选择 6 为基准数,接下来把所有比基准数大的数放在6的右边,比6小的数放在左边 原理分析: ① 选择最左边的数为基准数key 示例代码: #!/usr/bin/env python # coding:utf-8 # 设置最低位和最高位 def quickSort(nums,low,high): # 设置一个比较基准key key = nums[low] while low<high: # 如果最高位的数 大于等于 key则向前走 while low<high and nums[high] >= key: high -= 1 # 如果最低位的数 小于等于 key则向后走 while low<high and nums[low] <= key: low += 1 # 交换值 nums[low],nums[high] = nums[high],nums[low] #最后low=high,此时交换key和high位上的值,使小于key的值在key左边,大的在key右边 nums[nums.index(key)],nums[low] = nums[low],nums[nums.index(key)] # 返回最低位的位置 return low # 进行重复操作 def interval(nums,high): if low<high: # 进行排序并得到最低位位置以循环操作 key_index = quickSort(nums,high) interval(nums,key_index) interval(nums,key_index+1,high) nums = [64,12,45,] interval(nums,len(nums)-1) print "编程小技巧测试结果:" print nums """ [0,64] """ 运行结果: PS:关于排序算法的详细说明还可参考本站在线工具: 在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》 希望本文所述对大家Python程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |