Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

C/C++ バブルソート

バブルソートがどういうアルゴリズムなのかは、アルゴリズム図鑑というアプリを見るのが一番わかりやすいと思います。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 10 /* データの件数 */

int test[N];

void BubbleSort(void){
    int i, x, end;

    do {
        flag = 0;
        for(i=0; i < N - 1; i++){
            if(test[i] > test[i+1]){
                end = 1;
        /* x を使って test[i]とtest[i+1]を入れかえる */
                x = test[i];
                test[i] = test[i+1];
                test[i+1] = x;
            }
        } /* flag が 0 になるまで回す。 */
    } while (flag==1);
}

int main(void){
    int i;
    srand((unsigned int)time(NULL));
    printf("sort \n");
    for(i=0; i < N; i++){
        test[i]=rand();
        printf("%d ", test[i]);
    }

    printf("\n start sort: \n");
    BubbleSort();
    printf("\n end sort: \n");
    for(i=0; i<N; i++){
        printf("%d ", test[i]);
    }
    return EXIT_SUCCESS;
}

アルゴリズムとデータ構造は重要ですからねえ。ちゃんと勉強しないと。