점프 검색 기술은 정렬된 목록에서도 작동합니다. 블록을 만들고 해당 블록에서 요소를 찾으려고 합니다. 항목이 블록에 없으면 전체 블록을 이동합니다. 블록 크기는 목록의 크기를 기반으로 합니다. 목록의 크기가 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 endsize – 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