线性搜索算法及其C语言实现
时间:2020-02-23 14:41:32 来源:igfitidea点击:
线性搜索基本上是一种顺序搜索算法。
在此算法中,键元素在给定的输入数组中按顺序搜索。
如果在输入数组中找到key元素,它将返回该元素。
线性搜索算法
Linear_Search(数组X,值i)
将j设为1
如果j> n,则跳至步骤7
如果X [j] == i,则跳至步骤6
然后,将j递增1,即j = j + 1
返回步骤2
显示在特定索引i处找到的元素i,然后跳到步骤8
在输入元素集中找不到显示元素。
退出/结束
线性搜索的伪代码
procedure LINEAR_SEARCH (array, key) for each item in the array if match element == key return element's index end if end for end procedure
C语言中线性搜索的实现
首先,我们需要提及或者接受用户要搜索的元素。
然后,我们创建一个for循环并开始按顺序搜索元素。
编译器遇到匹配项(即array [element] ==键值)后,立即返回元素及其在数组中的位置。
如果找不到与输入匹配的值,则返回-1。
线性搜寻
#include <stdio.h> int LINEAR_SEARCH(int inp_arr[], int size, int val) { for (int i = 0; i < size; i++) if (inp_arr[i] == val) return i; return -1; } int main(void) { int arr[] = { 10, 20, 30, 40, 50, 100, 0 }; int key = 100; int size = 10; int res = LINEAR_SEARCH(arr, size, key); if (res == -1) printf("ELEMENT NOT FOUND!!"); else printf("Item is present at index %d", res); return 0; }
输出:
Item is present at index 5
线性搜索的时间复杂度
如果在循环的第一次迭代中找到元素,则最佳情况下的复杂度为O(1)。
如果在数组的末尾找到搜索元素,则最坏情况下的时间复杂度为O(n),前提是数组的大小为n。