标签:位置 循环 快速排序 序列 bsp 调用 切片 定义 部分
五,快速排序(划分交换排序)
思想:(选择一个中间值作为一个分割线,分开序列)
通过第一个值作为中值(注意这里中值并不意味着最后位置是最中间)对整个数列进行划分,然后从右开始做判断,交换进行排序,最后要求:规则:这个中值的左边都小于它,右边都大于它。
将list[0]提出来,0位空缺
low游标初始指向0,和high游标指向尾部,在指向空值时不能挪动。high游标先动,直到有不满足规则的,交换空缺和high的值。然后让low游标移动
以中值左右划分之后的序列再迭代进行快速排序。
注意:
迭代的时候再函数里面进行,不是定义之后。在其他函数里面反复调用,那样不是迭代。
迭代的输入要始终都是要处理的列表,只是不能传入切片,因为切片是取列表的一部分
if 语句是判断并不能当循环用。
想用两段代码交替进行,就在外部加一个while,这样循环起来。
标签:位置 循环 快速排序 序列 bsp 调用 切片 定义 部分
原文地址:https://www.cnblogs.com/yttas/p/10004131.html