ほぼコピペだが実装。
#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; }
挿入ソートは条件が合致すれば要素を前に挿入して残りを後ろに押し出していくイメージだろうか。
かなり単純になった。