1. 定义函数 partition(nums, left, right):
  2. 将 left 赋值给 pivot,即选取第一个元素作为基准值。
  3. 定义两个指针 i 和 j,分别指向 left 和 right。
  4. 进入循环,当 i<j 时:
    1. i 从左向右移动,直到找到第一个大于基准值的元素。
    2. j 从右向左移动,直到找到第一个小于基准值的元素。
    3. 如果 i<j,将 nums[i] 和 nums[j] 互换。
  5. 当 i>=j 时,遍历结束。将基准值 nums[pivot] 与 nums[i] 互换,此时 nums[pivot] 成为分界线,左边的元素都小于等于它,右边的元素都大于等于它。
  6. 返回 i,即基准值的索引位置。
def partitionnumsleft right # 分支思想求基准值索引 pivot = left i = left j = right while ij while ij and numsj numspivot j-=1 while ij and numsi numspivot i+=1

原文地址: http://www.cveoy.top/t/topic/eqgm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录