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

Comb Sort를 위한 C++ 프로그램?

<시간/>

빗 정렬과 버블 정렬의 기본 개념은 동일합니다. 즉, 빗 정렬은 버블 정렬을 개선한 것입니다. 버블 정렬 기법에서는 항목을 각 단계에서 다음 항목과 비교합니다. 그러나 빗 정렬의 경우 항목이 특정 간격으로 정렬됩니다. 각 단계를 완료하면 간격이 줄어듭니다. 이 정렬의 감소 계수 또는 축소 계수는 1.3입니다. 각 단계를 완료한 후 간격을 1.3으로 나눈다는 의미입니다. 시간 복잡도는 최상의 경우 O(n log n)입니다. O(n 2 /2n P ) (p는 증분 수) 평균 케이스 및 O(n 2 ) 최악의 경우.

알고리즘

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#includenamespace std;void display(int *array, int size){ for(int i =0; i array[i+gap]){ swap(array[i], array[i+gap] ); 플래그 =참; } } }}int 메인(){ 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 사전>