文章目录
查找算法
1. 基本查找/顺序查找

例子:

2. 二分查找/折半查找
- 数组中的数据必须是有序的
- 每次排除一半的查找范围


图中代码是左闭右闭的情况,循环判断条件为 left <= right,才为合法区间。
参考代码随想录,二分查找。
差值查找(二分查找改进):

数据分布最好要比较均匀。
斐波那契查找(二分查找改进、知道原理即可):

总结

3. 分块查找



代码示例:


扩展的分块查找(无规律的数据)

分块原则:每一块的数据不能有交集

4. 哈希查找(知道原理即可)

排序算法
1. 冒泡排序


2. 选择排序



3. 插入排序




4. 快速排序

图一:
这个 while 循环就是 start 和 end 的遍历,就是为了找到基准数要被交换的位置。

图二:

图三:
循环内部通过两指针指向数据的交换,来实现,基准数左边的数 < 基准数,基准数右边的数 > 基准数。
所以while内每次循环末,都要进行数据交换。

以下最后:
完善函数结束部分,传递递归:
跳出while循环,要将 "起始 i 位置的数据" 和 "start==end位置的数据" 进行交换。
函数末尾,进行递归的向下传递

完善函数开始部分:
结束递归

测试:

总结
