算法总结
1.java键盘录入2.JAVA运算符详解3.流程控制语句 ——if语句4.JAVA中switch语句格式5.JAVA中的for循环和while循环详解6.JAVA随机数的使用7.JAVA中的内存分配8.JAVA方法详解9.JAVA中的数组详解10.JAVA中字符串的常用方法11.JAVA中的两个容器StringBuilder和StringJoiner概述12.JAVA中ArrayList集合详解13.JAVA中的static关键字14.JAVA——继承详解15.JAVA 多态详解16.JAVA 多态详解17.Java中的包18.Java中的final,权限修饰符与抽象类19.JAVA中的接口详解20.JAVA的内部类21.java中的常用类及常用方法22.正则表达式23.Java中的爬虫24.JAVA——时间类25.JAVA——包装类及Integer的成员方法
26.算法总结
27.Arrays ——操作数组的工具类28.Lambda表达式29.集合体系结构30.JAVA之树的详解31.Set系列集合32.java——双列集合33.stream流的思想34.JAVA入门——方法引用35.JAVA——异常36.File --JAVA七种查找
-
基本查找
-
二分查找
-
插值查找
-
分块查找
-
斐波那契查找
-
哈希查找
-
树表查找
-
基本查找:从0索引开始挨个往后找,也叫顺序查找
二分查找/折半查找:可以提高查找效率
前提条件:数组中的数据必须是有序的
核心逻辑:每次排除一半的范围
-
min和max表示当前要查找的范围
-
mid是在min和max中间的
-
如果要查找的元素在mid左边,缩小范围时,min不变,max等于mid-1
-
如果要查找的元素在mid右边,缩小范围时,max不变,min等于mid+1
二分查找改进/插值查找
mid=min+((key-arr[min])/(arr[max]-arr[min]))*(max-min)
key-要查找的值
数组中的值分布比较均匀才适合用
斐波那契查找 1:0.618
mid=min+黄金分割点左边长度-1
排序算法
1.冒泡算法 :相邻的数据两两比较,小的放前面,大的放后面
2.选择排序:从0索引的元素跟后面的元素依次比较,小的放前面,大的放后面,以此类推
3.插入排序:将0索引的元素到N索引的元素看作是有序的,把N+1索引的元素到最后一个当成无序的,遍历无序的数据,将遍历到的元素插入有序序列中适当的位置,如遇到相同数据,插到后面,
N的范围:0-最大索引
递归算法
把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解
递归:方法中调用方法本身的现象 注意递归一定要有出口,否则会内存溢出
递归策略只需少量的程序就可以描述出解题过程所需的多次重复计算
书写递归的两个核心
-
找出口:什么时候不再调用方法
-
快速排序
-
将排序范围中的第一个数字作为基准数,再定义两个变量start,end
-
start从前往后找比基准数大的,end从后往前找比基准数小的
-
找到之后交换start和end指向的元素,并循环这一过程,直到start和end处于同一个位置,该位置是基准数组中应存入的位置,再让基准数归位
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?