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 중국어 웹사이트의 기타 관련 기사를 참조하세요!