排序是任何程式語言中我們都需要學習的必要概念。大多數排序是在涉及數字的陣列上完成的,是掌握遍歷和存取數組中資料的技術的墊腳石。
我們在今天的文章中要討論的排序技術類型是冒泡排序。
冒泡排序是一種簡單的排序演算法,如果相鄰元素的順序錯誤,它的工作原理是重複交換相鄰元素。這種數組排序方法不適合大型資料集,因為平均值和最壞情況的時間複雜度非常高。
以下是冒泡排序的實作。如果內部循環沒有引起任何交換,可以透過停止演算法來優化它。
// 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中文網其他相關文章!