How to spend the terminal

技術ブログでさえない

C言語における挿入ソート

ほぼコピペだが実装。

#include <stdio.h>

int main(void)
{
  int array[10];  // 配列
  int t;  // 格納変数
  int k1,k2,k3;  // 反復変数
  
  k1 = 0;  // 反復変数の初期化
  
  while( 1 ) {  // -1が出るまで入力
    scanf("%d",&t);
    if( t == -1 ) break;
    array[k1] = t;
    k1++;
  }
  
  for( k2=1; k2<k1; k2++ ){ //挿入ソート
    t = array[k2];
    for( k3=k2; k3>0 && array[k3-1]>t; k3-- ){
      array[k3] = array[k3-1];
    }
    array[k3] = t;
  }
  
  for( k2=0; k2<k1; k2++ ){ // 列挙
    printf("%d ",array[k2]);
  }
  
  return 0;
}

挿入ソートは条件が合致すれば要素を前に挿入して残りを後ろに押し出していくイメージだろうか。

かなり単純になった。