• 排序算法之选择排序


    选择排序

    概念:

    将原始的列表分为两组:一组认为是排序好的(默认升序),另一组认为是未排序,重点是放在未排序部分;  

    第一轮:默认位置0上的元素是最小的,然后对比其他位置元素将位置0上的元素真正最小元素进行调换;

    第二轮:默认位置1上的元素是最小的,然后对比其他位置元素将位置1上的元素真正次二小元素进行调换;

              .

              .

              .

    以此类推,一共进行n-1轮(此处n代表的是列表的长度)

    时间复杂度:

          最优时间复杂度:O(N2)

          最差时间复杂度:O(N2)

    稳定性:不稳定

    Python代码:

     1 def select_sort(alist):
     2     n = len(alist)
     3     for j in range(n-1):
     4         min_index = j
     5         #min = alist[min_index]
     6         for i in range(j+1,n):
     7             if alist[min_index] > alist[i]:
     8                 #min = alist[i]
     9                 min_index = i
    10         alist[min_index],alist[j] = alist[j],alist[min_index]
    11 
    12 
    13 
    14 if __name__ == "__main__":
    15     alist = [23,45,13,56,78,34,23]
    16     print("选择排序之前的原始列表:")
    17     print(alist)
    18     select_sort(alist)
    19     print("选择排序之后的列表:")
    20     print(alist)

    输出结果:

    O(n2)
  • 相关阅读:
    mongodb实验
    hbase实验
    oracle数据库的安装
    3ds的fbi无线传输
    2018年春阅读计划---阅读笔记6
    2018年春阅读计划---阅读笔记5
    2018年春阅读计划---阅读笔记4
    php写一个简单的计算器
    2018年春阅读计划---阅读笔记3
    脚本之家的一个meta的帖子
  • 原文地址:https://www.cnblogs.com/xiaodangdang/p/12325935.html
Copyright © 2020-2023  润新知