何時使用線性搜索算法?
- 當處理一個小數據集時。
- 當搜索存儲在連續內存中的數據集時。
線性搜索算法在什么情況下優于其他搜索算法?
當列表或數組未排序時,或者當輸入的大小相對較小時,首選線性搜索算法。它易于實現,并且不需要數據按任何特定順序排列。
以下是線性搜索算法的實現:
C++
#include <iostream>
#include <vector>
using namespace std;int search(vector<int>& arr, int x) {for (int i = 0; i < arr.size(); i++){if (arr[i] == x){return i;}}return -1;
}int main() {vector<int> arr = {3, 5, 7, 12 ,22, 56, 66};int x = 56;int res = search(arr, x);if (res == -1){cout << "數組中不存在元素";}else{cout << "數字存在索引是 " << res;}return 0;
}
輸出
數字存在索引是 5
C
#include <stdio.h>int search(int arr[], int N, int x)
{for (int i = 0; i < N; i++)if (arr[i] == x)return i;return -1;
}int main(void)
{int arr[] = arr = {3, 5, 7, 12 ,22, 56, 66};int x = 56;int N = sizeof(arr) / sizeof(arr[0]);int result = search(arr, N, x);(result == -1)? printf("數組中不存在元素"): printf("數字存在索引是 %d", result);return 0;
}
輸出
數字存在索引是 5
Java
import java.io.*;class GFG {public static int search(int arr[], int N, int x){for (int i = 0; i < N; i++) {if (arr[i] == x)return i;}return -1;}public static void main(String args[]){int arr = {3, 5, 7, 12 ,22, 56, 66};int x = 56;int result = search(arr, arr.length, x);if (result == -1)System.out.print("數組中不存在元素");elseSystem.out.print("數字存在索引是 "+ result);}
}
輸出
數字存在索引是 5
python
def search(arr, N, x):for i in range(0, N):if (arr[i] == x):return ireturn -1if __name__ == "__main__":arr = {3, 5, 7, 12 ,22, 56, 66}x = 56N = len(arr)result = search(arr, N, x)if(result == -1):print("數組中不存在元素")else:print("數字存在索引是", result)
輸出
數字存在索引是 5
C#
using System;class GFG {public static int search(int[] arr, int N, int x){for (int i = 0; i < N; i++) {if (arr[i] == x)return i;}return -1;}public static void Main(){int[] arr = {3, 5, 7, 12 ,22, 56, 66};int x = 56;int result = search(arr, arr.Length, x);if (result == -1)Console.WriteLine("數組中不存在元素");elseConsole.WriteLine("數字存在索引是 "+ result);}
}
輸出
數字存在索引是 5
JavaScript
function search(arr, n, x)
{for (let i = 0; i < n; i++)if (arr[i] == x)return i;return -1;
}let arr = {3, 5, 7, 12 ,22, 56, 66};let x = 56;let n = arr.length;let result = search(arr, n, x);(result == -1)? console.log("數組中不存在元素"): console.log("數字存在索引是 " + result);
輸出
數字存在索引是 5
PHP
<?phpfunction search($arr, $n, $x)
{for($i = 0; $i < $n; $i++) {if($arr[$i] == $x)return $i;}return -1;
}$arr = array(3, 5, 7, 12 ,22, 56, 66);
$x = 56;$result = search($arr, sizeof($arr), $x);
if($result == -1)echo "數組中不存在元素";
elseecho "數字存在索引是 " ,$result;
?>
輸出
數字存在索引是 5