並べ替えは、どのプログラミング言語でも学ぶ必要がある必須の概念です。ほとんどのソートは数値を含む配列に対して行われ、配列からデータを走査してアクセスする技術を習得するための足がかりとなります。
今日の記事で説明する並べ替えテクニックの種類は、バブル ソートです。
バブルソートは、順序が間違っている場合に隣接する要素を繰り返し交換することで機能するシンプルなソートアルゴリズムです。配列をソートするこの方法は、平均シナリオと最悪シナリオの時間計算量が非常に高いため、大規模なデータセットには適していません。
以下はバブルソートの実装です。内部ループでスワップが発生しなかった場合は、アルゴリズムを停止することで最適化できます。
// 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 中国語 Web サイトの他の関連記事を参照してください。