zoukankan      html  css  js  c++  java
  • 选择排序

    选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。

    1. 算法步骤

    1. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置

    2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

    3. 重复第二步,直到所有元素均排序完毕。

    2. 动图演示

      

     3. 代码实现

    # _*_ coding:utf8 _*_
    
    def selectionSort(arr):
        for i in range(len(arr) - 1):
            
            # 记录最小数的索引
            minIndex = i
            for j in range(i + 1, len(arr)):
                # 反向排序 将 '<' 改为 '>'
                if arr[j] < arr[minIndex]:
                    minIndex = j
    
            # i 不是最小数时,将 i 和最小数进行交换
            if i != minIndex:
                arr[i], arr[minIndex] = arr[minIndex], arr[i]
    
        return arr
    
    if __name__ == "__main__":
        arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]
        arr_s = selectionSort(arr)
        print(arr_s)
  • 相关阅读:
    加载与隐藏显示
    Task 自我总结认知
    修复SDF数据库引擎C#代码
    Windows防火墙开启后 ping不通了 的解决方案
    C# 串口
    WPF DataGrid中单元格运用Combobox的示例
    组合模式
    适配器模式
    【转载】.net 动态代理
    python数组操作
  • 原文地址:https://www.cnblogs.com/zhouziyuan/p/11820297.html
Copyright © 2011-2022 走看看