You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python快速排序return返回值解析:无return仍运行的原因

快速排序递归代码疑问解答

一、第二行return quickSort(arr, pivot_index+1, end)返回什么?

这行代码最终返回的是完全排好序的原数组arr,原因如下:

  1. 快速排序是原地排序算法:所有排序操作直接修改传入的原数组arr,partition函数也是在原数组上交换元素位置,没有创建新数组。
  2. 递归终止条件:当start >= end时,当前子数组只有一个元素(或为空),本身就是有序的,此时直接返回arr。
  3. 递归传递逻辑:return quickSort(...)会持续递归处理右半部分子数组,直到触发终止条件返回arr——此时的arr已经经过所有递归操作(左半部分+右半部分)完成了整体排序。

二、第一行递归调用quickSort(arr, start, pivot_index-1)加不加return都能正常运行的原因

核心在于这个递归的作用是原地修改数组,且返回值未被使用:

  1. 这行递归的任务是把左半部分子数组排序,而排序操作是直接修改原数组arr的。不管有没有return,只要递归执行完毕,左半部分就已经有序了。
  2. 代码没有接收这个递归的返回值(比如没有写left_result = quickSort(...)),所以加不加return对后续逻辑完全没有影响——我们只需要它完成原地排序的任务,不需要用它返回的数组。

从代码规范角度看,这里不需要加return,因为返回的arr完全没被利用,属于冗余代码。


内容的提问来源于stack exchange,提问作者ArNY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 16:45:25