目录
常见算法
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操作数组的工具类
①、示例代码
比较数据时,分有序和无序,插入时,使用二分查找进行插入点的确认
此处不明白可以多看几遍视频,视频讲的很详细