选择排序

选择排序

简介

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

以上介绍出自360百科

例子

对列表[5,3,6,2,10]进行选择排序

代码

# 升序排列
# 定义函数findsmallest()查找列表中的最小元素
def findsmallest(list):
    # 初始化列表中第一个元素为最小元素
    smallest = list[0]
    smallest_index = 0
    # 遍历整个列表,寻找最小值
    for i in range(1, len(list)):
        if list[i] < smallest:
            smallest = list[i]
            smallest_index = i
    return smallest_index


# 定义函数selection_sort1() 进行选择排序(升序)
def selection_sort1(list):
    # 初始化一个新的空的列表
    newlist = []
    # 将原列表中的每个最小的元素依次放入新的列表中
    for i in range(len(list)):
        smallest_index = findsmallest(list)
        newlist.append(list.pop(smallest_index))  # 将list中的smllest_index元素去除,加到newlist
    return newlist


# 测试
a = selection_sort1([5, 3, 6, 2, 10])
print(a)


# 降序排列
# 定义函数findsmax()查找列表中的最大元素
def findmax(list):
    max = list[0]
    max_index = 0
    for i in range(1, len(list)):
        if list[i] > max:
            max = list[i]
            max_index = i
    return max_index


# 定义函数selection_sort2() 进行选择排序(降序)
def selection_sort2(list):
    newlist = []
    # 将原列表中的每个最大的元素依次放入新的列表中
    for i in range(len(list)):
        max_index = findmax(list)
        newlist.append(list.pop(max_index))
    return newlist


# 测试
a = selection_sort2([5, 3, 6, 2, 10])
print(a)

笔记

在list中添加元素有四种方法

(1)使用append在list尾部添加一个元素

a=[1,2,3]
a.append(5)
print(a)

输出结果为:[1,2,3,5]

(2)使用extend将一个list添加到另一个list后面

a=[1,2,3]
b=['q','w','e']
a.extend(b)
print(a)

输出结果为:[1, 2, 3, 'q', 'w', 'e']

(3)使用insert将一个元素插入到指定位置

a=[1,2,3]
a.insert(1,'b')
print(a)

输出结果为:[1, 'b', 2, 3]

(4)使用“+”来将两个list进行相加

a=[1,2,3]
b=[4,5,6]
c=a+b
print(c)

输出结果为:[1, 2, 3, 4, 5, 6]

从这四种方法中可以看到前三种都是改变了原来的list,而第四种原来的list不变,生成一个新的list

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值