排序难点:算法多,容易混淆
1.直接(简单)插入排序:扑克牌
特点:越有序越快,完全有序O(n),非常重要,这个是希尔排序的基础
2.希尔(shell)排序分组后利用直接插入排序
3.冒泡排序:
两两比较,大的往后走
* 4.快速排序:算法: 1.从后往前找比基准小的数字,找到往前挪
2.从前往后找比基准大的数字,找到往后挪3.重复1.2
缺点:1.越有序,越慢
2.空间复杂度大,不稳定
5.选择排序:每次都从待排序中选出最小的一个和待排序的第一个进行数据交换
6.堆排序:算法:1.从最后一颗子树开始,从后往前调整
2.每次调整,从上往下调整
3.调整为大根堆
大根堆:在二叉树中所有的父都大于子
小根堆:在二叉树中所有的父都小于子
度:就是节点的分支
叶子节点:度为0
兄弟:同一个双亲的孩子之前被称为兄弟
深度:就是树的层高
7.归并排序
1.将两段有序的数据合并成为一段有序的数据,直到所有的数据都有序
2.把两段有序的归并成为一段有序的,也称为2路有序
8.基数排序(桶排序)
局限性:不能处理负数
9.第‘9’个排序
链表排序
1.单链表存放数据我们用什么排序?(冒泡,选择)
2.双向链表存放数据我们用什么排序?(快排(STL自带的list为双向链表)