线性搜索算法及 C 语言实现

线性搜索基本上是一个 **序列搜索算法。

在这个算法中,关键元素在给定的输入(/社区/教程/arrays-in-c)中以连续顺序搜索。

如果在输入数组中找到关键元素,则返回该元素。


线性搜索算法

线性_搜索( Array X, 值 i)

  • 设置 j 到 1
  • 如果 j > n,跳到步骤 7
  • 如果 X[j] == i,跳到步骤 6
  • 然后增加 j 到 1 i.e. j = j+1
  • 返回步骤 2
  • 显示在特定索引 i 找到的元素 i,然后跳到步骤 8
  • **显示元素在输入元素组中未找到。

线性搜索的伪代码

1procedure LINEAR_SEARCH (array, key)
2
3   for each item in the array
4      if match element == key
5         return element's index
6      end if
7   end for
8
9end procedure

C 中的线性搜索

  • 首先,我们需要提及或接受从用户那里搜索的元素
  • 然后,我们创建一个为循环,并以连续的方式开始搜索元素
  • 一旦编译器遇到一个匹配,即数组[element] ==关键值,返回元素及其在数组中的位置
  • 如果没有找到匹配输入的值,它返回 -1.

Linear Search

 1#include <stdio.h> 
 2
 3int LINEAR_SEARCH(int inp_arr[], int size, int val) 
 4{ 
 5     
 6    for (int i = 0; i < size; i++) 
 7    	if (inp_arr[i] == val) 
 8    		return i; 
 9    return -1; 
10} 
11
12int main(void) 
13{ 
14    int arr[] = { 10, 20, 30, 40, 50, 100, 0 }; 
15    int key = 100; 
16    int size = 10; 
17    int res = LINEAR_SEARCH(arr, size, key); 
18    if (res == -1)
19    printf("ELEMENT NOT FOUND!!");
20    else
21    printf("Item is present at index %d", res);
22
23    return 0; 
24}

出发点:**

1Item is present at index 5

线性搜索的时间复杂性

最好的复杂性是 O(1),如果元素在循环的第一个迭代中找到。

最糟糕的时间复杂性是O(n),如果搜索元素在数组的末尾,只要数组的大小为n。


结论

因此,在本文中,我们已经理解并实施了线性搜索算法。

Published At
Categories with 技术
comments powered by Disqus