mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12mobile wallpaper 13mobile wallpaper 14mobile wallpaper 15
455 字
1 分钟
noteday2
2026-03-16

算法笔记#

1.插值查找(二分查找优化)#
mid=min+keyarr[min]arr[max]arr[min](maxmin)mid = min + \frac{key - arr[min]}{arr[max] - arr[min]} * (max - min)

通过比例去找最靠近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处于同一个位置,该位置是基准数在数组中应存入的位置,再让基准数归位。归位后的效果:基准数左边的,比基准数小,基准数右边的,比基准数大

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

noteday2
https://canl-blog.top/posts/noteday2/
作者
CanL
发布于
2026-03-16
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时