算法4 1.排序 选择排序: 每次获取最大的数,交换位置 插入排序: 把数字插入有序数组中 希尔排序: 有间隔并且间隔递减的 归并排序: 归并: 两个有序数组的合并成新的有序数组 自顶向下的归并排序: 递归向下合并数组 子底向上的归并排序: 循环向上合并数组 快速排序: x元素切分数组成两个数组(小于等于x,大于x) 三向快速排序: x元素切分数组成三个数组(小于x,等于x,大于x) ext: 优先队列: 最小/大堆: 平衡的,可以用数组表示(获取位置有一定的数学关系),有一定的顺序 通过上浮添加新的元素,下沉删除最大/小的元素 2.查找 顺序查找(无序): 一个一个的查 二分查找(有序): 每次去掉一半的数据 二叉树查找: 构建判断往里面添加数据和查找类似(非平衡),删除替换右子树最小的数据 平衡树: 2-3查找树:构建麻烦,添加向上扩展,删除比较简单 红黑树:旋转,变色实现平衡,情况比较多,麻烦 散列表: 基于拉链法的散列表: 和hashmap类似 基于线程探测法的散列表: 一个数组,插入位置有数据就往后放,删除需要探测最后一个hash的数据填充删除位置,数据量要快满的话效率极低 3.图 无向图: 深度优先搜索 1.走迷宫 计算可达 2.寻找路径 保存路径信息 3.判断环 4.判断二分图 广度优先搜索 1.查询最短的路径 2.查询联通分量