用python写一个快速排序, 要求用到递归, 然后把partition操作分离的写出来, 求帮一下
1条回答 默认 最新
- 索利亚噶通 2021-12-05 17:54关注
有用请采纳
class Solution: def partition(self, nums, left, right): partitionValue = nums[left] partitionPos = left for i in range(left + 1, right + 1): if nums[i] < partitionValue: partitionPos += 1 nums[partitionPos], nums[i] = nums[i], nums[partitionPos] nums[partitionPos], nums[left] = nums[left], nums[partitionPos] return partitionPos def quickSort(self, nums, left, right): if left >= right: return partition = self.partition(nums, left, right) self.quickSort(nums, left, partition - 1) self.quickSort(nums, partition + 1, right) def sort(self, nums): self.quickSort(nums, 0, len(nums) - 1) return nums x = Solution() print(x.sort([5, 3, 9, 4, 2, 7])) print(x.sort([])) print(x.sort([5])) print(x.sort([5, 5, 5, 5])) print(x.sort([-1, 6, -7, 2]))
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
- ¥15 个人网站被恶意大量访问,怎么办
- ¥15 Vue3 大型图片数据拖动排序
- ¥15 Centos / PETGEM
- ¥15 划分vlan后不通了
- ¥15 GDI处理通道视频时总是带有白色锯齿
- ¥20 用雷电模拟器安装百达屋apk一直闪退
- ¥15 算能科技20240506咨询(拒绝大模型回答)
- ¥15 自适应 AR 模型 参数估计Matlab程序
- ¥100 角动量包络面如何用MATLAB绘制