zoukankan      html  css  js  c++  java
  • python 实现排序算法

    用python实现插入排序

    python实现插入排序
    
    def insertionSort(alist):
        length = len(alist)
        for i in range(1,length):
            temNum = alist[i]
            c=0
            for j in range(i,0,-1):
                if temNum < alist[j-1]:
                    alist[j] = alist[j-1]
                    c += 1
                else: #当第一次发现前面的值比自己小时就该退出循环  
                    if c == 0:
                        break
                    else:
                        alist[i - c] = temNum
                        break
            else:
                '''当程序运行到当j=0之后,会跳出循环时,将之前的temNum赋值给第一位
                此处只会在某个值和第一位进行比较的时候才会进入,将这个值付给第一位
                '''
                alist[0]= temNum
            print("times", i, ":", alist)
        return alist
    if __name__ == "__main__":
        alist = [7,3,5,4,6,2]
        print("initList:",alist)
        insertionSort(alist)

    虽然插入排序是o(n^2)的排序方法,但当给出的值排序的正确率越多,排序的次数就越少,当列表以从小到大的顺序给出的话,排序等于O(n)

    结果:

    initList: [7, 3, 5, 4, 6, 2]
    times 1 : [3, 7, 5, 4, 6, 2]
    times 2 : [3, 5, 7, 4, 6, 2]
    times 3 : [3, 4, 5, 7, 6, 2]
    times 4 : [3, 4, 5, 6, 7, 2]
    times 5 : [2, 3, 4, 5, 6, 7]
  • 相关阅读:
    KafkaZookeeper1-整体介绍
    spark thrift server configuration
    Spark Streaming 总结
    SparkSession
    Spark SQL
    Kafka Consumer2
    Kafka Consumer1
    Storm Spout
    java Future && Guava Future
    基本命令
  • 原文地址:https://www.cnblogs.com/carlos-mm/p/9212902.html
Copyright © 2011-2022 走看看