栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python排序算法-选择排序

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python排序算法-选择排序

Select Sort

直接选择排序的基本思想是在未排序的序列中选择一个最小的数,将其放在已经排好序的部分的最后。每次需要在剩余的元素中选择一个最小的数,而每次选择最小的数时都需要把剩下的所有的数都比较一遍。所以直接选择排序的最优时间复杂度、最坏时间复杂度、平均时间复杂度均为O(n²)。
  若待排序的序列中元素的总数为m个,则需要选择m-1次。若n表示已经选择过的次数,则第n+1次选择需要比较m-n-1次。

'''
直接选择排序
'''


def selectSort(nums):
    # 遍历列表,将第i个看成最小的数
    for i in range(0, len(nums)):
        # 记录未排序中最小的数的下标,初始值是当前遍历的下标
        min_index = i
        # 循环向后找
        for j in range(i + 1, len(nums)):
            # 如果找到一个比已经记录的最小数下标的数还小的数
            if nums[j] < nums[min_index]:
                # 修改最小数的下标
                min_index = j
        # 若最小数下标不是当前遍历的下标,说明后面有更小的数
        if min_index != i:
            # 交换位置
            temp = nums[min_index]
            nums[min_index] = nums[i]
            nums[i] = temp


# 待排序序列
list = [3, 5, 1, 8, 6, 9, 7, 0, 2]
# 选择排序
selectSort(list)
# 输出排序后的结果
print(list)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009469.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号