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

选择排序Python

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

选择排序Python

选择排序 基本思想 每一趟在n-i+1(i=1,2,…,n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。 具体来说:假设长度为n的数组arr,要按照从小到大排序,那么先从n个数字中找到最小值min1,如果最小值min1的位置不在数组的最左端(也就是min1不等于arr[0]),则将最小值min1和arr[0]交换,接着在剩下的n-1个数字中找到最小值min2,如果最小值min2不等于arr[1],则交换这两个数字,依次类推,直到数组arr有序排列。 与插入排序的不同之处 它与插入排序的不同在于,插入排序待插入的元素不是后面所有元素的最小值;而选择排序是后面所有元素里面的最小值,然后把这两个元素进行交换,这时最小元素就排到前面来了,当前元素排到后面去了,依次循环,可以得到有序的序列。 时间复杂度 :O(n^2) 时间复杂度很高,因此使用较少 代码
# 选择排序
def selection_sort(arr):
    for i in range(len(arr)-1): # 遍历第一个元素
        min_index = i
        for j in range(i+1, len(arr)): # 遍历第一个元素后面的所有元素,然后进行比较,如果后面存在比当前元素小的,则标记最小元素
            if arr[j] < arr[min_index]:
                min_index = j
        if i != min_index:
            # 如果最小的元素不是第一个,则第一个算术与最小元素进行交换位置
            arr[min_index], arr[i] = arr[i], arr[min_index]
    return arr
调用选择排序
arr = [2, 8, 1, 9, 7, 4, 3, 5, 6, 0]
print(selection_sort(arr))
输出结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/918577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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