zoukankan      html  css  js  c++  java
  • 排序系列02--选择排序

    大概是最简单的一种排序了吧。。。

    选择排序:单元排序

     老湿们把教室里的座位按照好坏分了级别 然后成绩好的坐在第一区域 成绩中等的做在第二区域 成绩差的坐在第三区域

     这大概就是最叼的选择排序了吧,自嘲。。。LOL

    代码里面的操作好烦,不想打字了 。。。。但是思路很简单 大概就是逐个去比较 然后呢每次都把最小的放在前面

    def fe(list2):
        for i in range(0, len (list2)):
            min = i
            for j in range(i + 1, len(list2)):
                
                if list2[j] < list2[min]:
                    min = j
            list2[i], list2[min] = list2[min], list2[i]  

     选择排序的时间复杂度是O(n^2) 平方级的

    接下来我们要看看冒泡排序了。。。 也许你已经听过无数次人抱怨冒泡有多慢了

    于是我们这里在来一次,其实冒泡跟选择很接近他们都算法复杂都是O(n^2) {平均}

    但是很显然冒泡这边大多数情况下 做了过多的交换 

    def bubble(bubbleList):
        listLength = len(bubbleList)
        while listLength > 0:
            for i in range(listLength - 1):
                if bubbleList[i] > bubbleList[i+1]:
                    bubbleList[i] = bubbleList[i] + bubbleList[i+1]
                    bubbleList[i+1] = bubbleList[i] - bubbleList[i+1]
                    bubbleList[i] = bubbleList[i] - bubbleList[i+1]
            listLength -= 1
        print bubbleList
  • 相关阅读:
    健康检查详解:机制、配置、对比、实操
    制作自签名证书
    常用的UML建模
    UML建模更好的表达产品逻辑
    常用的UML建模
    UML建模图实战笔记
    领域驱动设计学习之路—DDD的原则与实践
    DDD领域驱动设计理论篇
    WAN、LAN、WLAN三种网口的区别
    新生代Eden与两个Survivor区的解释
  • 原文地址:https://www.cnblogs.com/nerdlerss/p/5463979.html
Copyright © 2011-2022 走看看