
目录
常见算法
1、企业中的常见算法
一、查找算法
1、基本查找(数据没有任何顺序)
①、代码实现:
②、课堂练习:
2、二分查找/折半查找(数据一定要有顺序)
①、示例情况:
②、代码实现:
③、二分查找基础小结:
④、二分查找改进:(插值查找)
⑤、二分查找改进:(黄金分割点 -- 斐波那契查找)
⑥、二分查找改进小结
3、分块查找(块内无序,块间有序)
②、扩展的分块查找(无规律的数据)
③、扩展的分块查找(查找的过程中还需要添加数据 -- 哈希查找)
4、小结
二、排序算法
1、冒泡排序
①、示例代码
2、选择排序
①、示例代码
3、插入排序
4、快速排序
①、递归算法
②、递归算法的作用
③、递归练习
④、快速排序示例(先移动end,再移动start)
5、小结
三、Arrays
1、Arrays操作数组的工具类
①、示例代码
常见算法



1、企业中的常见算法

一、查找算法

查找算法适用情况:

1、基本查找(数据没有任何顺序)

①、代码实现:


②、课堂练习:

直接在示例代码的基础上稍作修改即可

返回多个数据时,可以把这些数据放到数组或集合中

2、二分查找/折半查找(数据一定要有顺序)

①、示例情况:

②、代码实现:



③、二分查找基础小结:

④、二分查找改进:(插值查找)
缺陷:要求数组数据分布的比较均匀

⑤、二分查找改进:(黄金分割点 -- 斐波那契查找)

⑥、二分查找改进小结

3、分块查找(块内无序,块间有序)


①、示例代码


getIndex方法:

findIndexBlock方法:

定义Block类:

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

代码实现自己写
③、扩展的分块查找(查找的过程中还需要添加数据 -- 哈希查找)

4、小结
红色:掌握
蓝色:了解
绿色:以后讲解

二、排序算法

1、冒泡排序


①、示例代码


2、选择排序


①、示例代码

3、插入排序

①、示例代码



4、快速排序
①、递归算法


示例代码:

导致栈内存溢出错误:

内存原理图:

②、递归算法的作用


③、递归练习
1、求1-100之间的和:

示例代码:


2、求阶乘


示例代码:


内存图:

④、快速排序示例(先移动end,再移动start)

代码实现:




实现全部循环步骤:
1、在快排递归方法末尾中添加基准数左右情况

2、在变量定义下方设置递归出口

3、添加测试用例

4、课后练习

5、小结

三、Arrays

1、Arrays操作数组的工具类

①、示例代码








比较数据时,分有序和无序,插入时,使用二分查找进行插入点的确认

此处不明白可以多看几遍视频,视频讲的很详细



















