这里用到了折半查找,
原理
快速排序类似折半查找,每轮会定义一个基准数值,对其它数值左右同时查找,将小于基准数值的数放在左边,大于的放在右边。
初始无序数列:
第一轮快速排序
设第一个元素47为基准,L代表左边当前表示的数,R代表右边。
从右边先开始找,找到小于基准47的数停下。
再从左边开始找,找到大于基准47的数停下
交换两个数,再重复右边开始继续寻找
右边找到43
左边找到87
交换,再继续寻找
右边找到43,左和右到了一起,则将当前位置的数与假设的基准数进行交换
第一轮排序结束,47已结出现在了正确的排序位置上。
然后递归他就行了
写代码时可先while循环R,直到找到小的直接跟L位置交换,再while循环L,找到大的直接跟R交换。
标签:右边,找到,47,基准,交换,pta,排序,快速 From: https://www.cnblogs.com/shifangchen/p/17034431.html