首页 / 知识
python快速排序的运作过程
2023-11-12 12:56:00
python快速排序的运作过程
运作过程
1、从数列中挑出一个元素,称为基准,重新排序数列,所有元素比基准值小的摆放在基准前面。
所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区操作。
2、小于基准值元素的子数列和大于基准值元素的子数列排序。
3、递归的最底部情形,是数列的大小是零或一。
也就是永远都已经被排序好了。虽然一直递归下去,但是这个算法总会结束,因为在每次的迭代中,它至少会把一个元素摆到它最后的位置去。
实例
#快速排序-递归
defquick_sort(alist,begin,end):
#递归的终止条件是begin>=last,即数组大小为1或0
#递归终止时,数组已经排好序了
ifbegin>=end:
return
else:
#以开头的值作为基准值,然后以基准值为界将数组分区,将分区后的左右两部分继续调用快速排序函数
mid_value=alist[begin]
low=begin
high=end
#分别从右往左寻找小于基准值的值,从左往右寻找大于基准值的值
whilelow #从右往左寻找小于基准值的值 whilelow high-=1 alist[low]=alist[high] #从左往右寻找大于基准值的值 whilelow low+=1 alist[high]=alist[low] #循环结束时,low==high,这个位置正是基准点的位置 alist[low]=mid_value #对low左边的元素执行快速排序 quick_sort(alist,begin,low-1) quick_sort(alist,low+1,end) if__name__=='__main__': alist=[54,26,93,17,77,31,44,55,20] print(alist) quick_sort(alist,0,len(alist)-1) print(alist) 以上就是python快速排序的运作过程,希望对大家有所帮助。更多Python学习教程请关注我们
最新内容
相关内容
python判断元素是否是字符串类型
python判断元素是否是字符串类型,培训,异常,类型,实例,字符串,数据类型,对象,元素,参数,序列,isinstance()是Python中的一个内建函数语法:isinpython有数组吗
python有数组吗,数据,培训,地址,数组,数据类型,参数,指针,形状,属性,类型,python中的list是python的内置数据类型,list中的数据类不必相同的,而python处理列表的部分元素
python处理列表的部分元素,培训,元素,切片,列表,部分,索引,负数,末尾,函数,称之为,python处理列表的部分元素1、处理列表的部分元素称之为切python列表如何结合数组使用
python列表如何结合数组使用,时间,培训,数组,列表,元素,结尾,长度,多种,以上,类型,python列表如何结合数组使用说明1、要存储多种相同类型的python列表追加元素出错的解决
python列表追加元素出错的解决,分析,代码,培训,元素,列表,错误,操作,末端,长度,索引,python列表追加元素出错的解决1、问题分析在操作列表时,pythontry语句的工作过程
pythontry语句的工作过程,异常,工作,信息,业务,培训,语句,过程,程序,变量,句子,python中try语句的工作过程1、说明(1)当try句块中出现异常时,python使用pop删除元素
python使用pop删除元素,项目,位置,培训,元素,索引,方法,变量,语法,要素,长度, python使用pop删除元素1、pop语法item=my_list.pop()item关于函数式编程:在 JavaScript 中使
关于函数式编程:在 JavaScript 中使用 Array.map 删除元素,关于函数式编程:在 JavaScript 中使用 Array.map 删除元素,过滤,函数,项目在C中将多维数组作为函数参数传递
在C中将多维数组作为函数参数传递,在C中将多维数组作为函数参数传递,参数传递,多维数组,数组,函数,Passing multidimensional arrays关于asp.net:如何定义带有潜在子元
关于asp.net:如何定义带有潜在子元素和属性的自定义web.config部分?,关于asp.net:如何定义带有潜在子元素和属性的自定义web.config部最新web前端实战入门训练——HTML
最新web前端实战入门训练——HTML基本元素,最新,web,前端,实战,入门,训练,—,HTML,基本,在,, 在我们开始学习前端开发的时候,经常HTML5新元素属性最新详解
HTML5新元素属性最新详解,HTML5,新元素,新,元素,属性,最新,详解,canvas,, canvas 新元素 canvas标签定义图形,比如图表和其他