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)
  • 相关阅读:
    GIT
    curl
    排序算法
    《软件设计师》考点分布
    lua第三方库
    WordPress
    go http
    Unity UI相关总结
    note
    LUA重难点解析
  • 原文地址:https://www.cnblogs.com/zhouziyuan/p/11820297.html
Copyright © 2011-2022 走看看