八大排序
IMG_0768(20200513-161656).JPG
插入、冒泡、选择;
希尔、快速、归并;
堆、基数;
插入:每趟把一个待排关键字按大小插进已排序列正确位置中。
冒泡:顺序遍历,每趟把最大的数冒泡到最右边。
选择:每趟选最大数。
希尔:缩小增量,每隔一段增量比较,每趟使序列更加有序,适合基本有序。
快速:左右两头指针,每次将枢纽选到正确位置,ij指针重合。
归并:即先使每个子序列有序,再使子序列段间有序,分治法的有效应用。因为需要转存整个待排序列,所以空间复杂度O(n)
堆:先当成完全二叉树建堆(每个有子节点上滤),再每次拿出根,建堆。
基数:最低位开始,每次放到0到9桶里,再拿出来,稳定。
堆排序
(1)堆是一颗完全二叉树;
(2)堆排序的空间复杂度是O(1);
(3)堆的插入、删除元素的时间复杂度都是O(log n);
(4)建堆的时间复杂度是O(n);
(5)堆排序的时间复杂度是O(nlog n);

浙公网安备 33010602011771号