首页 > 编程知识 正文

python列表快速排序,python的排序方法

时间:2023-05-04 02:27:23 阅读:29279 作者:729

快速排序的时间复杂度描述了o(nlogn )算法首先从序列中以一个数为基准数提取的划分过程,将大于该数的所有数置于其右侧,将所有小于该数的数置于其左侧,然后针对左右区间重复第二步。 假设每个区间只有一个数,在对6、1、2、7、9、3、4、5、10、8进行排序之前,首先在该序列中查找基准数(参考用)。 例如,选择6作为基准数,然后将大于基准数的所有数置于6的右侧,将小于6的数置于左侧

原理分析:以最左边的数为基准数key设置两个光标low和high,分别指向数组的最低位和最高位后high先动作,如果high的位数大于key则前进,如果high-1的位数大于key, 该位数=key在该时刻继续前进到low的位数,low继续前进到low 1,切换high和low的位数直到该位数大于key,重复以上步骤直到low=high,key和high /usr/想和人在一起的睫毛膏/env python# coding:utf-8#最低位和最高位的defquicksort(nums,low, high ) : # (比较基准keykey=nums [ low ] whilelowhigh : )如果大于或等于key,则前进到whilelowhighandnums [ high ]=key 3360 high-=1#,最低位=key:low=1#交换值nums[low],nums[high]=nums[high],nums[low] #最后,小于key的值在key的左边,大的值在key的右边交换key和high位的值以使nums[low]=nums[low],然后返回到nums[nums.index(key ) ] #最低位置return low# 重复操作high ) : if lowhigh: #,获取最低位置,循环操作key_iigh的low,high(interval(nums,low,key_index ) interval 4,7,len(nums )-1 ) print nums ' ' [ 0,2,3,4,7,9,12,45,64 ] '是33603359 www.cn blogs.com/QL shine /

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。