马上要把大话数据结构这本书看完啦,现在已经对数据结构有了一种系统上的了解,后面的事情就疯狂练习力扣上的编程题目啦,第九章是本书的最后一章,却是以前我学数据结构最先学的部分-----排序。
排序
网页搜索之后的排序,商品页面的排序,是如何做到的呢?
本章将介绍7种排序算法:
冒泡排序,简单选择排序,直接插入排序属于简单算法。
快速排序,归并排序(merge sort),希尔排序,堆排序属于改进算法。
本文中都是升序排序哦~
1.冒泡排序
#bubble sorted
def bubble(array):
if array == None or len(array) == 0:
return -1
for i in range(len(array)-1):
for j in range(len(array)-1):
if array[j] > array[j+1]:
array[j],array[j+1] = array[j+1],array[j]
return array
时间复杂度:o(n^2)
空间复杂度:o(1)
2.简单选择排序
选择一个数作为最小数,(比如选第一个数作为min),在后续数组中找到最小的数字,并交换位置。若没有,跳到第二个数字,继续进行比较。
代码如下:
#selection sort
def select(array):
if array == None or len(array) == 0:
return -1
for i in range(len(array)-1):
min_index = i
for j in range(i,len(array)):
if array[min_index] > array[j]:
array[min_index],array[j] = array[j],array[min_index]
return array