>  기사  >  Java  >  Java의 선형 검색

Java의 선형 검색

WBOY
WBOY원래의
2024-08-30 15:14:24443검색

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, 즉 찾을 수 없음을 반환합니다.

예시 #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);
}
}

출력:

Java의 선형 검색

예시 #2

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:

Java의 선형 검색

다음은 STDIN 명령 프롬프트에 제공되는 입력입니다.

아니요. 배열 요소 수: 6

배열 요소: 2, 4, 6, 8, 10, 1

검색 가능한 값: 4

Java의 선형 검색

출력 2:

Java의 선형 검색

아니요. 배열 요소 수: 8

배열 요소: 3, 5, 7, 9, 10, 34, 25, 21

검색 가능한 값: 10

Java의 선형 검색

출력 3: 요소를 찾을 수 없는 경우

Java의 선형 검색

아니요. 요소 수: 5

배열 요소: 2, 4, 5, 6, 10

검색 가능한 값: 9

Java의 선형 검색

선형 검색 알고리즘의 시간 복잡도

선형 검색 알고리즘은 거의 사용되지 않으므로 해시 테이블, 이진 검색 등 다른 검색 알고리즘을 사용하면 빠른 검색이 가능합니다. 선형 검색의 시간 복잡도는 다음과 같습니다.

배열에서 요소가 발견된 경우: O(n) ~ O(1)

배열에서 요소를 찾을 수 없는 경우: O(n) ~ O(n/2)

이상으로 'Java의 선형 검색' 주제를 마치겠습니다. 선형 검색 알고리즘이 무엇인지, 그리고 그 구현 단계를 예를 통해 살펴보았습니다. 또한 프로그래밍 방식으로 예제를 해결하고 요소를 사용할 수 있는 경우와 요소를 사용할 수 없는 경우 등 다양한 출력을 표시했습니다. 또한 검색 가능한 값을 찾았는지 여부에 따라 선형 검색 알고리즘의 시간 복잡도를 확인했습니다. 감사해요! 즐거운 학습!!

위 내용은 Java의 선형 검색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:자바 힙 덤프다음 기사:자바 힙 덤프