顺序查找算法也叫线性查找算法,是一种非常简单和直观的查找算法。其基本思想是从查找表的一端开始,依次查看其中的每个元素,直到找到目标元素或者查找完整个表为止。顺序查找算法适用于顺序表和链表等有序或无序的数据结构。
顺序查找算法流程
顺序查找算法的流程如下:
- 从查找表中的第一个元素开始比对,即从下标为 0 的位置开始。
- 如果当前元素等于目标元素,则直接返回该元素的下标。
- 如果查找到表的末尾仍未找到目标元素,则返回 “未找到” 消息或者 -1 表示未找到。
- 如果查找过程中发现有相同元素,则返回第一个相同元素的位置。
代码实现如下:
function seqSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) {
return i;
}
}
return -1;
}
顺序查找的使用方法
顺序查找算法非常简单易用,通常用于数据量较小的情况下。在具体使用过程中,我们需要明确以下几点:
- 确认查找表的数据类型:顺序查找算法适用于各种不同类型的数据,比如数字、字符、字符串、对象等。
- 确认查找的范围:顺序查找算法本质上是遍历查找表,因此其查找的范围是整个表,即从下标为 0 的元素开始遍历。
- 确认目标元素:顺序查找算法需要明确目标元素,即需要查找的元素的值。
- 确认返回值:顺序查找算法的返回值是目标元素在表中的位置,如果未找到则返回 -1 或者 “未找到” 等消息。
下面给出两个示例,演示了如何使用顺序查找算法。
示例一:数字查找
const arr = [12,25,34,84,16,19,7,23];
const target = 16;
const index = seqSearch(arr, target);
if(index === -1){
console.log(`未找到数字${target}`);
} else {
console.log(`数字${target}在数组中的位置为${index}`);
}
输出结果:
数字16在数组中的位置为4
示例二:字符串查找
const arr = ['apple', 'banana', 'grape', 'kiwi', 'lemon'];
const target = 'kiwi';
const index = seqSearch(arr, target);
if(index === -1){
console.log(`未找到字符串${target}`);
} else {
console.log(`字符串${target}在数组中的位置为${index}`);
}
输出结果:
字符串kiwi在数组中的位置为3
总的来说,顺序查找算法虽然简单,但是其复杂度为O(n),当数据量较大时,效率可能会比较低下。因此在实际使用时,需要根据实际情况选择合适的查找算法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解顺序查找算法原理与使用方法 - Python技术站