ホームページ  >  記事  >  php教程  >  並べ替えバブルソート

並べ替えバブルソート

高洛峰
高洛峰オリジナル
2016-12-19 13:20:341072ブラウズ

バブル ソートの基本概念は、2 つの隣接する数値を順番に比較し、小数点を前に、大きな数値を後ろに置きます。つまり、最初のパスでは、まず 1 番目と 2 番目の数値を比較し、小数点を前に、大きな数値を後ろに置きます。次に、2 番目の数値と 3 番目の数値を比較し、小数を前に、大きな数値を後ろに置きます。最後の 2 つの数値を比較するまで同様に、小数を前に、大きな数値を後ろに置きます。これで最初の旅行が終了し、最大数が最後に残ります。 2 番目のパスでは、引き続き最初の数値ペアから比較を開始します (2 番目の数値と 3 番目の数値の交換により、最初の数値が 2 番目の数値より小さくなくなっている可能性があるため)、小数点を最初に置きます。 、および大きな数値を配置した後、最後から 2 番目の数値まで比較が続行されます (最後から 1 番目の位置がすでに最大になっています)。2 番目のパスの終了時に、最後から 2 番目の位置で新しい最大数値が取得されます。位置 (実際には、シーケンス全体の中で 2 番目に大きい番号です)。このようにして、最終的に並べ替えが完了するまで上記のプロセスを繰り返します。

c コードは次のように実装されています:

#include <stdio.h>  
  
//打印数组  
void display(int array[],int size){  
    printf("the array is:");  
    int i;  
    for(i=0;i<size;i++){  
        printf("%d ",array[i]);  
    }  
    printf("\n");  
}  
  
//冒泡排序算法  
void sort(int array[],int size){  
    int i,j,temp,flag;  
    for(i=0;i<size;i++){  
        flag = 0;  
        for(j=size-1;j>i;j--){  
            //如果前一个数大于后一个数,则交换  
            if(array[j-1]>array[j]){  
                temp = array[j];  
                array[j] = array[j-1];  
                array[j-1] = temp;  
                flag = 1;  
            }  
        }  
        //如果本次排序没有进行一次交换,则break,减少了执行之间。  
        if(flag == 0){  
            break;  
        }  
        display(array,size);  
    }  
}  
  
int main(void){  
    int array[10]={34,45,1,39,21,68,65,100,4,51};  
    display(array,10);  
    sort(array,10);  
    return 0;  
}



並べ替えバブル ソート関連記事の詳細については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:バブルソート次の記事:バブルソート