题库首页 › GESP等级认证(Python) › 题目 25919

下面代码段实现了快速排序的划分操作(以首元素为基准),横线处代码应填入( )。 def partition(arr, low, high): pivot = arr[low] i = low j = high while i = pivot: j -= 1 while i < j and arr[i] <= pivot: i += 1 if i < j: arr[i], arr[j] = arr[j], arr[i] # ------------------------ # 在此处填入代码 return i

A:arr[low], arr[high] = arr[high], arr[low]
B:arr[low], arr[i] = arr[i], arr[low]
C:arr[i], arr[high] = arr[high], arr[i]
D:arr[i] = pivot

正确答案:B

答案解析

初始化基准值pivot为区间首元素,设置双向扫描指针i和j。外层循环执行条件为i < j,内层循环从右向左移动j,跳过大于等于pivot的元素;随后从左向右移动i,跳过小于pivot的元素。当i与j未相遇时,交换arr[i]与arr[j]。重复该过程直至i >= j。划分结束时,将基准元素放置到正确位置,即与arr[j]交换。整个过程维护了左侧元素小于等于基准、右侧元素大于基准的性质。

试卷来源:202606 CCF-GESP编程能力等级认证Python五级真题

本卷相关题目

在线做题 同科目题库