选择排序 python实现

选择排序 python实现

简介

选择排序(Selection Sort),是一种简单直观的排序算法。

它的工作原理是:第一次从待排序的元素列中选出最小的一个元素,存放在元素列的起始位置,然后从剩余的未排序元素中找到最小元素,放到已排序元素列的末尾。以此类推,直到全部待排序的数据元素的个数为零。

选择排序是不稳定的排序算法。

思路

(以升序为例)依次遍历元素列中的每个元素,找出最小的一个元素,和第一个元素交换

(1)第一次循环:找到元素列中最小的元素,与起始位置的元素交换;
(2)第二次循环:找到元素列中第二小的元素,与列中第二个位置的元素交换
(3)按这种方法,一直交换到元素列有序。

例子:升序排序元素列[3, 5, 4, 6, 1, 2]

在这里插入图片描述

分析

特点:选择排序是不稳定的,如果存在相同的元素,排序后这几个相同元素间的顺序可能和排序前不同

时间复杂度:最好、最坏、平均都是O(N2)

代码

def selectSort(List):
    size = len(List)
    if size == 0:
        return []
    for i in range(size-1):
        min_index = i
        for j in range(i, size):
            if List[j] < List[min_index]:
                min_index = j
        List[i], List[min_index] = List[min_index], List[i]
    return List

引用

百度百科-选择排序
选择排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值