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

    选择排序

    排序思路:

      一趟遍历记录最小的数,放到第一个位置;

      再一趟遍历记录剩余列表中最小的数,继续放置;

      假定一个最小值变量,拿这个值遍历相比较,比假定的最小值还小,就设置最小值变量为该值

    时间复杂度为:

      O(n2)

    def select(li):
        """
        选择排序,假定一个最小值变量,遍历比较
        :param li: 无序列表
        :return: None
        """
        for i in range(len(li) - 1):
            min_loc = i
            for j in range(i + 1, len(li)):
                if li[j] < li[min_loc]:
                    min_loc = j
            li[i], li[min_loc] = li[min_loc], li[i]
    
    data = list(range(1000))
    random.shuffle(data)
    select(data)
    print(data)
    # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
  • 相关阅读:
    基于php socket(fsockopen)的应用实例分析
    php多线程的问题
    PHP之fsockopen提交POST数据讲解
    Sort List
    Insertion Sort List
    LRU Cache
    Reorder List
    Word Break II
    Word Break
    Copy List with Random Pointer
  • 原文地址:https://www.cnblogs.com/yxy-linux/p/6520681.html
Copyright © 2011-2022 走看看