C言語でバブルソート(隣り合う要素の大小を比較しながら整列)処理のサンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#include <stdio.h> void printarray(int *,int); void sort(int *,int); void swap(int *, int *); /* program entry */ int main(int argc, char **argv) { int array[4] = {4, 1, 3, 2}; printarray(&array[0], 4); sort(array, 4); printarray(&array[0], 4); return 0; } /* printout */ void printarray(int *array, int length) { int i; for (i = 0; i < length; i++) { printf("%d ", array[i]); } printf("\n"); } /* bubble sort */ void sort(int *array, int length) { int i, j; for (i = 0; i < length - 1; i++) { for (j = 0; j < length - i - 1; j++) { if (array[j] > array[j+1]) { swap(&array[j], &array[j+1]); } } } } /* swap a <=> b */ void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } |
- 8行目:「int argc」は引数の総個数を表します。「char **argv」は「char *argv[]」と意味は同様になりますが引数の文字列を指すポインタ配列です。
- 20行目:「%d」は変数の値を10進整数として出力します。
- 22行目:「\n」は改行コードです。
- 38~43行目:ここで配列の入れ替え処理を行います。