Java中的線性搜尋是最簡單的搜尋演算法之一,它有助於按順序搜尋清單中的元素。但是,線性搜尋很少使用,因為其他演算法(例如二分搜尋演算法)與線性搜尋相比,哈希表允許更快的搜尋。對每個項目執行順序搜索,即檢查每個項目,如果找到匹配項,則返回該項目;否則,搜索將繼續,直到資料收集結束。 Java中有一些方法可以實作線性搜尋操作。讓我們透過幾個例子來深入研究這個線性搜尋以及它是如何在 Java 中逐步實現的。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
由於搜尋演算法沒有可用的語法,因此將會有一種演算法可以幫助我們在任何程式語言中實現線性搜尋演算法。
演算法:
第1步:首先,我們需要取得陣列的長度
第2步:取得要搜尋的元素並將其儲存在變數中
第 3 步: 現在,將陣列的每個元素與可搜尋值進行比較
第 4 步: 如果有的話,有匹配項。然後,找到可搜尋的元素
第 5 步: 如果沒有,即沒有找到匹配項。然後,找不到可搜尋元素,如果給定
,則返回-1我們將按照上述演算法步驟透過範例手動實現線性搜尋演算法,然後進入程式設計範例。
範例:
設數組 A[4,8,2,3,6,9]
設可搜尋元素X=3;
4 | 8 | 2 | 3 | 6 | 9 |
這是要搜尋X=3的陣列;
以程式完成線性搜尋時,我們需要陣列的長度。
從第一個元素開始
4 | 8 | 2 | 3 | 6 | 9 |
所以這裡 X=3 = 4
與其他元素比較
4 | 8 | 2 | 3 | 6 | 9 |
所以這裡 X=3 = 8
我們,將會,前進到下一個元素,
4 | 8 | 2 | 3 | 6 | 9 |
所以這裡 X=3 = 2
會繼續前進,
4 | 8 | 2 | 3 | 6 | 9 |
所以這裡 X=3 = 3
將傳回元素的索引並傳回。此元素的索引為 3
如果直到陣列結尾都沒有找到元素,則傳回-1,即未找到。
線性搜尋演算法
class LinearSearchAlgorithm { static int LSA(int array[], int length, int x) { for (int i = 0; i < length; i++) { if (array[i] == x) return i; } return -1; } public static void main(String[] args) { int[] array = { 4, 8, 2, 3, 6, 9 }; int length = array.length; int x = 3; int index = LSA(array, length, x); if (index == -1) System.out.println("Element not found in the array"); else System.out.println("Element is found at index " + index); } }
輸出:
import java.util.Scanner; class LSA { public static void main(String args[]) { int length, k, i, array[]; Scanner input = new Scanner(System.in); System.out.println("Enter length of the array:"); length = input.nextInt(); array = new int[length]; System.out.println("Enter " + length + " elements"); for (i = 0; i < length; i++) { array[i] = input.nextInt(); } System.out.println("Enter the value to be searched:"); k = input.nextInt(); for (i = 0; i < length; i++) { if (array[i]== k) { System.out.println(k+" is found at index "+(i)); break; } } if (i == length) System.out.println(k + " is not found in the array"); } }
輸出 1:
下面是 STDIN 命令提示字元中給出的輸入,
不。數組元素數:6
陣列元素:2, 4, 6, 8, 10, 1
可搜尋值:4
輸出 2:
不。陣列元素數:8
陣列元素:3, 5, 7, 9, 10, 34, 25, 21
可搜尋值:10
輸出 3:如果找不到元素
不。元素數量:5
陣列元素:2、4、5、6、10
可搜尋值:9
由於線性搜尋演算法很少使用,其他搜尋演算法如雜湊表和二分搜尋可以實現快速搜尋。線性搜尋的時間複雜度如下:
如果在陣列中找到元素:O(n) 到 O(1)
如果在陣列中找不到元素:O(n) 到 O(n/2)
至此,我們的主題「Java 中的線性搜尋」就結束了。我們已經透過範例了解了線性搜尋演算法是什麼及其實現步驟。還以程式設計方式解決了範例並顯示了各種輸出,即元素何時可用以及元素何時不可用。還看到了基於可搜尋值(如果找到或未找到)的線性搜尋演算法的時間複雜度。謝謝!快樂學習! !
以上是Java 中的線性搜尋的詳細內容。更多資訊請關注PHP中文網其他相關文章!