def QuickSort(left,right,lis:list): if left >= right: return # 判断标准就是每次的left point, start, end = lis[right], right, left # 每次都是拿左右指针是否相遇作为判断标准 while left < right: # 如果当前值大于 指标 说明应该在右边 while left < right and lis[left] <= point: left += 1 while left < right and lis[right] >= point: right -= 1 lis[left], lis[right] = lis[right], lis[left] # 交换当前标准值的位置 lis[start],lis[right] = lis[right], lis[start] # 这个时候 游标是移动了的 QuickSort(end, left-1, lis) QuickSort(left+1, start, lis) return lis
快排:双指针+递归
(递归写八皇后很有意思)