콤 정렬과 버블 정렬의 기본 개념은 동일합니다. 즉, 빗 정렬은 버블 정렬을 개선한 것입니다. 버블 정렬 방식에서는 각 단계에서 항목을 다음 항목과 비교합니다. 그러나 빗 정렬의 경우 항목이 특정 간격으로 정렬됩니다. 각 단계를 완료하면 간격이 줄어듭니다. 이 정렬의 감소 계수 또는 축소 계수는 1.3입니다. 각 단계를 완료한 후 격차를 1.3으로 나눈다는 의미입니다.
콤 정렬 기법의 복잡성
- 시간 복잡성: 최상의 경우 O(n log n)입니다. O(n^2/2^p) (p는 증분 수) 평균의 경우 O(n^2) 최악의 경우
- 공간 복잡성: O(1)
입력 및 출력
입력:정렬되지 않은 데이터 목록:108 96 23 74 12 56 85 42 13 47출력:정렬 전 배열:108 96 23 74 12 56 85 42 13 47정렬 후 배열:32 5 23 47 /사전>알고리즘
CombSort(배열, 크기)입력 - 데이터 배열 및 배열의 총 개수
출력 - 정렬된 배열
Begin gap :=size flag :=true while the gap ≠ 1 OR flag =true do gap =floor(gap/1.3) //gap <1 then gap :=1 flag =false인 나눗셈 후의 바닥 값 for i :=0 to size – gap -1 if array[i]> array[i+gap] 다음 array[i]를 array[i+gap] 플래그 =true로 바꾸십시오. 완료 완료End예시
#include#include namespace std;void display(int *array, int size) { for(int i =0; i array[i+gap]) { swap(array[i], array[i+gap] ); 플래그 =참; } } }}int main() { int n; cout <<"요소의 개수를 입력하세요:"; 신>> n; 정수 [n]; // 주어진 수의 요소로 배열 생성 cout <<"Enter elements:" < > arr[i]; } cout <<"정렬 전 배열:"; 디스플레이(arr, n); 빗 정렬(arr, n); cout <<"정렬 후 배열:"; 디스플레이(arr, n);} 출력
요소 수 입력:10요소 입력:108 96 23 74 12 56 85 42 13 47정렬 전 배열:108 96 23 74 12 56 85 42 13 47정렬 후 배열:12 13 4 73854 사전>