几句话描述简单算法——排序与搜索

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介:

一、排序

1)桶排序

准备大量的木桶,用木桶的标号(数组下标)作为数据,按照木桶标号的顺序进行排序。

2)选择排序

从“待排序部分”找到最小值(或最大值),让“待排序部分”的起始位置向后移动。

3)冒泡排序

比较相邻的两个数据,把这两个数据按照大小关系正确的交换排列。

4)插入排序

不断地把数据插入已排序的部分数据列,里面恰当的位置。

5)归并排序

分两步走,先了解下归并的概念。归并:把“几个已排序的数据列”合并成“一个已排序的数据列”。

归并排序由分割和归并两个构成。

6)希尔排序

希尔排序就是把数据以一定的间隔进行分组,并且对每个组进行的排序。

7)快速排序

从数据列中任意取出一个值P(基准值),再把“>P”和“<P”的值分离出来,得到新的数据列,P在数据列中的最终位置就确定了。

 

二、搜索

1)线性搜索

线性搜索就是从起始数据开始,按顺序排除,比较每个数据是否与目标数据一致。

2)二分搜索

二分搜索的前置条件是数据列已经排好序。

二分搜索专注数据列中间位置M1,将数据列分为左右部分,如果数据一致就结束;否则缩小范围,在左边或右边数据列重复查找中间位置M2等,直到结束。

3)哈希搜索

1. 创建哈希表,利用哈希函数求得一个哈希值,将哈希值作为下标。

2. 哈希冲突,很有可能会出现哈希值相同,则可以在哈希值中保存一个单项列表(PHP中可以用Array)。

3. 通过哈希值限定到特定的分组里,实现高效搜索。

4)字符串搜索

“子字符串是数组(多个数据)”,将子字符串的每个字符和目标字符串中的字符一一比较,如果不匹配,重新匹配,下一次开始匹配的位置,就是在当前位置后移一位。

5)KMP搜索

KMP算法可以根据子字符串出现不匹配的位置,决定下一次开始比较字符的位置。

6)BM搜索

BM算法从子字符串的末尾字符开始匹配,根据不匹配的字符和位置信息,决定下一次匹配开始的位置。

 

 

本文转自 咖啡机(K.F.J) 博客园博客,原文链接: http://www.cnblogs.com/strick/p/6428476.html  ,如需转载请自行联系原作者


相关文章
|
10月前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】基于非支配排序的鲸鱼优化算法NSWOA与多目标螳螂搜索算法MOMSA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】基于非支配排序的鲸鱼优化算法NSWOA与多目标螳螂搜索算法MOMSA求解无人机三维路径规划研究(Matlab代码实现)
421 5
|
10月前
|
机器学习/深度学习 运维 算法
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
476 0
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
|
11月前
|
机器学习/深度学习 算法 安全
【无人机3D路径规划】基于非支配排序遗传算法NSGAII的无人机3D路径规划研究(Matlab代码实现)
【无人机3D路径规划】基于非支配排序遗传算法NSGAII的无人机3D路径规划研究(Matlab代码实现)
347 1
|
10月前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
331 0
|
10月前
|
机器学习/深度学习 算法 安全
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)
274 0
|
11月前
|
机器学习/深度学习 算法 安全
【优化调度】基于matlab非支配排序遗传算法求解车辆充电调度优化问题研究(Matlab代码实现)
【优化调度】基于matlab非支配排序遗传算法求解车辆充电调度优化问题研究(Matlab代码实现)
189 0
|
9月前
|
算法 数据可视化 测试技术
HNSW算法实战:用分层图索引替换k-NN暴力搜索
HNSW是一种高效向量检索算法,通过分层图结构实现近似最近邻的对数时间搜索,显著降低查询延迟。相比暴力搜索,它在保持高召回率的同时,将性能提升数十倍,广泛应用于大规模RAG系统。
754 10
HNSW算法实战:用分层图索引替换k-NN暴力搜索
|
10月前
|
存储 算法 搜索推荐
软考算法破壁战:从二分查找到堆排序,九大排序核心速通指南
专攻软考高频算法,深度解析二分查找、堆排序、快速排序核心技巧,对比九大排序算法,配套动画与真题,7天掌握45%分值模块。
403 1
软考算法破壁战:从二分查找到堆排序,九大排序核心速通指南
|
10月前
|
供应链 算法 Java
【柔性作业车间调度问题FJSP】基于非支配排序的多目标小龙虾优化算法求解柔性作业车间调度问题FJSP研究(Matlab代码实现)
【柔性作业车间调度问题FJSP】基于非支配排序的多目标小龙虾优化算法求解柔性作业车间调度问题FJSP研究(Matlab代码实现)
396 1

热门文章

最新文章