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

    选择排序

    概念:

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

    第一轮:默认位置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)
  • 相关阅读:
    NTFS FAT FAT32
    天才经常浏览的15个网站
    手机软件测试总结
    常见文件格式总结
    Tcp三次握手
    Http请求响应机制
    C/S测试
    软件异常测试
    跟我一起学Oracle 11g【8】SQL 基础学习2[连接查询]
    跟我一起学Oracle 11g【7】SQL 基础学习
  • 原文地址:https://www.cnblogs.com/xiaodangdang/p/12325935.html
Copyright © 2011-2022 走看看