比较类排序
交换排序
冒泡排序
一、算法逻辑
将整个数组从前到后依次比较,交换位置。第一个和第二个比较,数值大的放到后面,操作完后再将第二个和第三个比较,依次向后。遍历一次后最后一个位置是整个数组的最大值,在之后的遍历过程中不再参与比较。
二、复杂度
时间复杂度:O(N2)。因为一次遍历只能将最大值放到最后所以需要遍历N次,每次中比较N个数据。
空间复杂度:O(1)。只在原数组上进行位置交换,无额外空间消耗。
三、python实现
def bubble_sort(blist):
n = len(blist)
for i in range(n):
for j in range(n-i-1):
if blist[j] > blist[j+1]:
temp = blist[j]
blist[j] = blist[j+1]
blist[j+1] = temp
j = j++
i = i++
return blist
快速排序
一、算法逻辑
选择一个基数,数组里小于它的数放在左边,大于它的数放在右边。
三、python实现
def quick_sort(qlist):
piovt=qlist[0]
#基准数一般为数组第一个
for
插入排序
简单插入排序
希尔排序
选择排序
简单选择排序
堆排序
归并排序
二路归并排序
多路归并排序
非比较类排序
计数排序
桶排序
基数排序
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。