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

如何不使用sort、remove/del函数对int类型列表进行升序排序

升序排序实现方案

核心思路

采用标记法选择排序逻辑实现,全程不涉及删除操作,仅用循环、append方法即可完成要求:

  • 初始化一个空列表存放排序后的结果
  • 初始化一个和原列表长度一致的布尔标记列表,所有元素初始为False,用来标记原列表中哪些元素已经被选入结果列表
  • 每次循环遍历原列表所有未被标记的元素,找到其中的最小值
  • 将找到的最小值append到结果列表,同时把该元素对应的标记位置改为True
  • 重复上述步骤,直到所有元素都被标记,结果列表就是升序排序后的最终列表

实现代码

def custom_sort(int_list):
    n = len(int_list)
    # 标记数组,记录对应位置的元素是否已经被加入排序结果
    used = [False] * n
    sorted_result = []
    
    for _ in range(n):
        # 每次查找未使用的最小元素
        min_val = None
        min_index = -1
        for i in range(n):
            if not used[i]:
                if min_val is None or int_list[i] < min_val:
                    min_val = int_list[i]
                    min_index = i
        # 把最小元素加入结果,标记为已使用
        sorted_result.append(min_val)
        used[min_index] = True
    return sorted_result

# 测试示例
test_list = [5, 2, 9, 1, 5, 6]
print(custom_sort(test_list))  # 输出 [1, 2, 5, 5, 6, 9]

逻辑说明

全程没有调用sort()、remove()、del等禁止使用的方法,仅用了for循环、列表append方法,完全符合约束要求。时间复杂度为O(n²),和基础选择排序效率一致,适用于中小规模的整数列表排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:27:02