455 字
1 分钟
noteday2
算法笔记
1.插值查找(二分查找优化)
通过比例去找最靠近key的mid 相当于一种优化
需要数据分布比较均匀 不然反而会降低效率
2.分块查找
分块原则:
1. 前一块max小于后一块的min(块内有序,块间无序)
2. 块数一般等于数字个数开根
block类里有最大最小索引以及块内最大值 定义 blockArr存一下块
以及findIndexBlock getIndex方法分别来找索引块的索引以及数的索引
如果是没有啥规律的数 我们在定义block类时 多添加一个属性 块内最小值
3.排序
1. 冒泡 相邻两个比较大的放后面
2. 选择 从0索引开始与后面每个索引进行比较 大于它就交换 直到该索引与后面每个索引都比较完后进入下一索引
3. 插入 先找有序数组以及无序数组 从无序数组第一个开始遍历与有序数组最大的比较 比它小就继续往前找 直到比有序数组中的元素大
4. 快速(递归)将排序范围中的第一个数字作为基准数,再定义两个变量start,endstart从前往后找比基准数大的,end从后往前找比基准数小的。找到之后交换start和end指向的元素, 并循环这一过程,直到start和end处于同一个位置,该位置是基准数在数组中应存入的位置,再让基准数归位。归位后的效果:基准数左边的,比基准数小,基准数右边的,比基准数大
部分信息可能已经过时












