选择排序

选择排序是一种灵巧的算法,但是其速度不是很快。

选择排序算法的核心思想是在一个乱序的需要排序的数组中,选择一个最小的数放到另外一个数组中,第二次从数组中选出一个次小的,依次重复,直到把第一个数组中的所有数据排序完成。

时间复杂度的计算,每次需要在第一个数组中遍历一遍数据,找到最小的数据,所以每次的时间复杂度为O(n)。需要循环n次才能排序完成,所以时间复杂度为O(n^2)。

python示例代码

def findSamllest(arr):      #查找数组中最小的数据
    smallest = arr[0]       #存放最小的值
    smallest_index = 0      #存放最小值的索引
    for i in range(1, len(arr)):
        if arr[i] < smallest:
            smallest = arr[i]
            smallest_index = i
    return smallest_index

def select_search(arr):     #快速排序算法
    newArr = []             #创建一个数组
    for i in range(len(arr)):
        smallest_index = findSamllest(arr)
        newArr.append(arr.pop(smallest_index))     #从旧的数组中删除,并且加入新数组中
    return  newArr

list = [5, 3, 6, 2, 10]

print(select_search(list))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值