Python 选择排序

选择排序的核心就是对有n个元素的列表找n次最小值,然后将最小值出栈压入新创建的列表里,这样新创建的列表自然就是从小到大排序了
代码如下

def print_info():
    lst_o = [1, 3, 9, 7, 5, 4, 6, 8]
    print("排序前的列表:", lst_o)
    return lst_o


def find_smallest(lst):
    smallest = lst[0]
    smallest_index = 0
    for i in range(1, len(lst)):
        if smallest > lst[i]:
            smallest = lst[i]
            smallest_index = i
    return smallest_index


def selection_sort(lst_o):
    lst_n = []
    for i in range(len(lst_o)):
        smallest_index = find_smallest(lst_o)
        lst_n.append(lst_o.pop(smallest_index))
    return lst_n


def main():
    lst_o = print_info()
    lst_n = selection_sort(lst_o)
    print("经过选择排序后的列表:", lst_n)


main()

结果如下

排序前的列表: [1, 3, 9, 7, 5, 4, 6, 8]
经过选择排序后的列表: [1, 3, 4, 5, 6, 7, 8, 9]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值