数据结构之常用排序算法python实现
溺水的鱼该怎么活
四不像
展开
-
常见排序之冒泡排序
#原始的冒泡排序 不断的两两比较,将最小的值传到数组的首位,然后减少比较的范围,知道最后一个树def BubbleSort(array): length = len(array) for i in range(length): for j in range(length-1, i, -1): if array[j] < array[j...原创 2018-04-09 10:19:56 · 164 阅读 · 0 评论 -
常见排序之选择排序
def SelectSort(array): #遍历得在列表中找最小值,并且将最小值放到最前面 length = len(array) for i in range(length): min = i #假设第一个值是最小值 for j in range(i+1, length): if array[min] > arra...原创 2018-04-09 10:21:15 · 216 阅读 · 0 评论 -
常见排序之直接插入排序
def InsertSort(array): length = len(array) for i in range(1, length): #每次相当于把当前值插入到前面的有序序列中 if array[i] < array[i-1]: #表示需要将当前插入前面的有序表 insert_value = array[i] ...原创 2018-04-09 10:21:59 · 183 阅读 · 0 评论 -
堆排序
def heap_sort(L): #生成最大堆函数 def heap_adjust(L, father_node, length): temp = L[father_node] index = father_node * 2 #此时指向左孩子 while(index <= length): if ind...原创 2018-04-09 10:22:36 · 191 阅读 · 0 评论 -
归并排序
def merge(a, b): #需要有一个新的数组来合并两个原来有序的数组。 c = [] h = j = 0 while j < len(a) and h < len(b): #每次将两个数组中最小的送入新的数组C if a[j] < b[h]: c.append(a[j]) j += ...原创 2018-04-09 10:23:17 · 195 阅读 · 0 评论 -
快速排序
#快速排序def Partition(L, low, high): #三数取中,防止形成不平衡的递归斜树 median = low + (high - low) // 2 if(L[low] > L [high]): #保证左边要小 L[low], L[high] = L[high], L[low] if (L[median] >L...原创 2018-04-09 10:23:51 · 196 阅读 · 0 评论