Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

점프 검색


점프 검색 기술은 정렬된 목록에서도 작동합니다. 블록을 만들고 해당 블록에서 요소를 찾으려고 합니다. 항목이 블록에 없으면 전체 블록을 이동합니다. 블록 크기는 목록의 크기를 기반으로 합니다. 목록의 크기가 n이면 블록 크기는 √n이 됩니다. 올바른 블록을 찾은 후 선형 검색 기술을 사용하여 항목을 찾습니다. 점프 검색은 성능에 따라 선형 검색과 이진 검색 사이에 있습니다.

점프 검색 기술의 복잡성

  • 시간 복잡도:O(√n)
  • 공간 복잡성:O(1)

입력 및 출력

입력:정렬된 데이터 목록:10 13 15 26 28 50 56 88 94 127 159 356 480 567 689 699 780 850 956 995검색 키 356출력:위치에서 찾은 항목
알고리즘
점프검색(배열, 크기, 키)

입력: 정렬된 배열, 배열의 크기 및 검색 키

출력 - 키의 위치(발견된 경우), 그렇지 않으면 잘못된 위치입니다.

begin blockSize :=√size start :=0 end :=blockSize while array[end] <=key AND end  size – 1 then end :=size done for i :=start to end -1 do if array[i] =key then return i done return invalid locationEnd

예시

#include#include네임스페이스 std;int jumpSearch(int array[], int size, int key) 사용 { int start =0; 정수 끝 =sqrt(크기); //배열 길이의 제곱근 while(array[end] <=key &&end  크기 - 1) 끝 =크기; // 오른쪽이 범위를 초과하면 범위를 제한합니다. } for(int i =start; i> n; 정수형[n]; //크기가 n인 배열 생성 cout <<"항목 입력:" <> arr[i]; } cout <<"목록에서 검색할 검색키를 입력하세요:"; 신>> 검색 키; if((loc =jumpSearch(arr, n, searchKey))>=0) cout <<"위치에서 찾은 항목:" < 

출력

항목 수 입력:20항목 입력:10 13 15 26 28 50 56 88 94 127 159 356 480 567 689 699 780 850 956 995목록에서 검색할 검색 키를 입력하세요.1 위치:356