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

如何在Python中将选择排序拆分为min_index和selection_sort两个函数

选择排序函数拆分方案

完全可以按你的要求拆分,这种拆分方式将「查找未排序区间最小下标」和「排序主逻辑」解耦,代码可读性和可维护性更强。

原代码问题修正

你提供的现有代码存在缩进错误:内层查找最小元素的循环、元素交换逻辑都写在了外层循环之外,无法正常实现排序功能,拆分前需要先修正该逻辑问题。

拆分后完整实现代码

# 功能:返回列表l中,从start_index下标到列表末尾的最小元素对应的下标
def min_index(l, start_index):
    min_idx = start_index
    for j in range(start_index + 1, len(l)):
        if l[min_idx] > l[j]:
            min_idx = j
    return min_idx

# 选择排序主逻辑
def selection_sort(l):
    for i in range(len(l)):
        # 调用min_index获取当前未排序区间的最小元素下标
        current_min_idx = min_index(l, i)
        # 交换当前未排序区间起点和最小元素的位置,完成本轮排序
        l[i], l[current_min_idx] = l[current_min_idx], l[i]
    return l

# 测试运行
l = [64, 25, 12, 22, 11]
selection_sort(l)
print(l)

运行逻辑说明

  • min_index 为独立功能函数,可单独调用调试,输入为待查找列表和起始下标,输出为目标区间最小元素的下标
  • selection_sort 作为主逻辑,每轮循环将未排序区间的起始下标传入min_index,拿到返回的最小下标后执行元素交换
  • 两个函数通过参数传递和返回值关联运行,完全符合你要求的拆分结构

内容的提问来源于stack exchange,提问作者Max-ine-93

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:54:03