zoukankan      html  css  js  c++  java
  • 三种排序算法python源码——冒泡排序、插入排序、选择排序

    最近在学习python,用python实现几个简单的排序算法,一方面巩固一下数据结构的知识,另一方面加深一下python的简单语法。
    冒泡排序算法的思路是对任意两个相邻的数据进行比较,每次将最小和最大的数据都放在数组头和尾的位置,每次比较完成后除去头、尾的数据,进行比较。python源码如下:

    def bubble_sort( ):
        str_array = raw_input("Input your numbers:")
        array = list(str_array) 
        l = len(array) 
        i = 0
        for i in range(l-1): 
            for j in range(i, l-i-1):
                if array[j+1] < array[j]:
                    temp = array[j]
                    array[j] = array[j+1]
                    array[j+1] = temp
        for i in array:
            print i
    if __name__ == "__main__":
        bubble_sort( )


    插入排序算法的思路是每次将所选位置的数据插入到数组中该位置之前已排好序的数据之间,保证按顺序插入。python源码如下:

    def insert_sort():
        array = [3,1,4,2,5,7,6]
        length = len(array)
        for i in range(1,length):
            key = array[i]
            j = i-1
            while array[j] > key and j >= 0:
                array[j+1] = array[j]
                j = j-1
            array[j+1] =key
        for i in array:
            print i
    if __name__ == "__main__":
        insert_sort()

    选择排序算法的思路是每次挑出最小(或最大)的数据放在数组头部,实现排序。pytho源码如下:

    def select_sort():
        array = [2,1,4,3,7,6,5,8]
        length = len(array)
        for i in range(length):
            flag = i
            for j in range(i+1,length):
                if array[flag] > array[j]:
                    flag = j
            if flag != i:
                temp = array[i]
                array[i] = array[flag]
                array[flag] = temp
        for i in array:
            print i
    if __name__ == "__main__":
        select_sort()


    完。

  • 相关阅读:
    图解设计模式-Visitor模式
    图解设计模式-Decorator模式
    图解设计模式-Strategy模式
    图解设计模式-Bridge模式
    HashMap源码
    LinkedList源码
    Vector源码
    ArrayList源码
    图解设计模式-Abstract Factory模式
    图解设计模式-Builder模式
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3181525.html
Copyright © 2011-2022 走看看