今日(2020/06/20)からアルゴリズムを勉強していこうと思う。選ばれたのはC言語です。理由は単純で今勉強中だから。メモ用として使っていくので詳しい解説はしない(というか知識がないからできない)。よく参考書にあるような数字の計算から始めるわけではないのでそこは理解していただきたい。では早速やっていこう。
環境構築に関しては以下の記事を参考にして構築した。(Windows)
※Macはわかりませんので各自で調べてください。
https://webkaru.net/clang/mingw-gcc-environments/
使用している書籍:C言語によるはじめてのアルゴリズム入門
著者:河西朝雄
#直接選択法によるソート
一番単純なソートらしい。
direct.c
#include <stdio.h>
int main(void){
int i,j,t,n=5;
static int array[] = {20,50,70,30,10};
for(i=0;i<n;i++){
min = array[i];
for(j=i+1;j<n;j++){
if(array[j]<min){
min = array[j];
t = array[i];
array[i] = array[j];
array[j] = t;
}
}
}
for(i=0;i<n;i++){
printf("%d\n",array[i]);
}
}
#出力結果
10
20
30
50
70
#まとめ
ソートは並列処理などをすると高速化できることは知っている。いずれはできるようになりたいが、今は各ソートを書けるようにするところから頑張っていこうと思う。