C
アルゴリズム

バブルソート

バブルソート…•配列の末尾から隣接する要素を順番に比べていき、大小関係が逆ならば交換する。
例53421
→15342
→12534
→12354
→12345

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

void BubbleSort();
void MakeArray();
void ShowData();
int main();


const int SIZE = 10;
int data[SIZE];

void MakeArray(){
    int i, num;
    srand((unsigned) time(NULL));

    for(i=0;i<SIZE;i++){
        num=rand()%900 + 100; //取得する値を100~999の間とする
        data[i] = num;
    }
}

void ShowData(){
    for(int i = 0; i < SIZE; i++){
        if(i != SIZE -1){
            printf("%d, ", data[i]);
        }else{
            printf("%d", data[i]);
        }
    }
    printf("\n");
}

void BubbleSort(){
    int cnt = SIZE - 1;
    int tmp;

    for(int i = 0;i < cnt; i++){

        for(int j = cnt;i < j; j--){  

            if(data[j] < data[j-1]){
                tmp = data[j];
                data[j] = data[j-1];
                data[j-1] = tmp;
            }else{
                continue;
            }
        }
    ShowData();
    }
}

int main(){
    MakeArray();

    printf("(ソート前)\n");
    ShowData();

    BubbleSort();

    printf("(ソート後)\n");
    system("PAUSE");
    return 0;
}