정렬은 모든 프로그래밍 언어에서 배워야 하는 필수 개념입니다. 대부분 정렬은 숫자와 관련된 배열에서 수행되며 배열의 데이터를 탐색하고 액세스하는 기술을 익히는 디딤돌입니다.
오늘 글에서 다룰 정렬기법의 종류는 버블정렬(Bubble Sort)입니다.
버블 정렬은 인접한 요소의 순서가 잘못된 경우 반복적으로 교체하여 작동하는 간단한 정렬 알고리즘입니다. 이 배열 정렬 방법은 평균 및 최악의 시나리오에 대한 시간 복잡도가 매우 높기 때문에 대규모 데이터 세트에는 적합하지 않습니다.
아래는 버블 정렬의 구현입니다. 내부 루프로 인해 스왑이 발생하지 않은 경우 알고리즘을 중지하여 최적화할 수 있습니다.
// Easy implementation of Bubble sort #include <stdio.h> int main(){ int i, j, size, temp, count=0, a[100]; //Asking the user for size of array printf("Enter the size of array you want to enter = \t"); scanf("%d", &size); //taking the input array through loop for (i=0;i<size;i++){ printf("Enter the %dth element",i); scanf("%d",&a[i]); } //printing the unsorted list printf("The list you entered is : \n"); for (i=0;i<size;i++){ printf("%d,\t",a[i]); } //sorting the list for (i = 0; i < size - 1; i++) { count = 1; for (j = 0; j < size - i - 1; j++) { if (a[j] > a[j + 1]) { //swapping elements temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; count = 1; } } // If no two elements were swapped by inner loop, // then break if (count == 1) break; } // printing the sorted list printf("\nThe sorted list is : \n"); for (i=0;i<size;i++){ printf("%d,\t",a[i]); } return 0; }
**
시간 복잡도: O(n2)
보조공간 : O(1)
문의사항은 댓글 달아주세요!!
그리고 모든 토론에 감사하겠습니다 :)
위 내용은 C의 버블정렬의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!