三种排序算法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()
完。