[Java]查找算法&排序算法

文章目录


查找算法

1. 基本查找/顺序查找

例子:

2. 二分查找/折半查找

  • 数组中的数据必须是有序的
  • 每次排除一半的查找范围

图中代码是左闭右闭的情况,循环判断条件为 left <= right,才为合法区间。

参考代码随想录,二分查找。

差值查找(二分查找改进):

数据分布最好要比较均匀。

斐波那契查找(二分查找改进、知道原理即可):
总结

3. 分块查找


代码示例:


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

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

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

排序算法

1. 冒泡排序

2. 选择排序



3. 插入排序

4. 快速排序

图一:

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

图二:

图三:

循环内部通过两指针指向数据的交换,来实现,基准数左边的数 < 基准数,基准数右边的数 > 基准数。

所以while内每次循环末,都要进行数据交换。

以下最后:

完善函数结束部分,传递递归:

跳出while循环,要将 "起始 i 位置的数据" 和 "start==end位置的数据" 进行交换。
函数末尾,进行递归的向下传递

完善函数开始部分:

结束递归

测试:

总结

相关推荐
liliangcsdn30 分钟前
派息率指标的应用探索和分析
大数据·算法
for_ever_love__31 分钟前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
java资料站35 分钟前
五、Spring AI Alibaba · Memory · Saver(短期会话)
java·spring·microsoft
垆边人似月.1 小时前
华为机试题 :两数之和
c++·算法·华为
默默开发1 小时前
物流行业可用算法方向
算法
垆边人似月.1 小时前
华为机试题 :有效的括号
c++·算法·华为
夜之眷属2 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
波加曼大王2 小时前
# vLLM不要迷信PagedAttention神话,聊聊线上藏着的内部碎片陷阱
java·架构
SL_staff2 小时前
目标健康度自检清单:开发者视角下的目标-计划-任务链路断点诊断
java·开源·github
A加ITIL教练长河achotsao2 小时前
ITIL Master 战略领导者课后系列分享:AI编程正在重新划分研发与运维的边界
算法