数据结构
pici7002
咖啡真难
展开
-
排序算法-冒泡排序
排序过程: 一次比较两个元素,如果顺序错误就交换两个元素的位置,如果顺序没有错,则继续往下遍历,从头遍历到尾,每次的排序都会将最大值或者最小值找出来。重复这样的步骤直到排序完成。下面是python的实现 def bubble_sort(alist): '''冒泡排序''' n = len(alist) #从头走到尾n-1次 for j in range(n-1): ...原创 2019-04-28 15:27:52 · 252 阅读 · 0 评论 -
排序算法-选择排序
每次都找到未排序的元素中的最大值,与当前值进行交换 def select_sort(list): for j in range(n-1): min_index = j: for i in range(j+1,n): if list[i]< list[min_index]: min_index = i list[j],list[min_index] = list[m...原创 2019-04-28 15:29:37 · 449 阅读 · 0 评论 -
排序算法-插入排序
将第一个元素视为已经排序好,比较第二个元素和第一个元素的大小,如果比第一个小就交换位置,否则就保持不变,至此前两个元素排序完成。第三个元素依次遍历前两个元素,进行比较,如果比第二个小就交换,再和第一个比较,如果小就交换,否则保持原状。重复上面的过程,直到排序完成。 def insert_sort(list): n = len(list) for j in range(n): ...原创 2019-04-28 15:30:25 · 239 阅读 · 0 评论 -
排序算法-希尔排序
def shell_sort(alist): '''希尔排序''' # gap 按照折半来取 # n = 9 n = len(alist) # gap = 4 gap = n // 2 # gap变化到0之前,插入算法执行次数 while gap >= 1: # 插入算法,与普通的插入算法的区别就是gap步长 ...原创 2019-04-28 15:32:11 · 237 阅读 · 0 评论 -
排序算法-快速排序
def quick_sort(alist, first, last): '''快速排序''' if first >= last: return mid_value = alist[first] low = first high = last while low < high: # 让high的游标左移,当...原创 2019-04-28 15:34:07 · 267 阅读 · 0 评论