/************************/
/* 選択ソート(昇順) */
/************************/
#include <stdio.h>
#define MAX 10
void main( )
{
int data[MAX]={ 80,5,36,23,12,100,45,9,1,78 };
int iE=MAX-1;// 配列終点添字
int iS; // 整列始点添字
int iM; // 最小要素添字
int i,w;
printf("\n●選択ソート(昇順)●\n");
printf("\nソート前\n");
for( i=0; i<MAX; i++ ) printf("%d ",data[i]);
printf("\n");
printf("\n途中経過\n");
for( iS=0; iS<iE; iS++ ) // 先頭から整列
{
//--最小要素検索--
for( iM=iS,i=iS+1; i<MAX; i++ )
{
if ( data[i]<data[iM] ) iM=i;
}
//--最小要素入れ替え--
if ( iS!=iM )
{
w=data[iM]; data[iM]=data[iS]; data[iS]=w;
}
//--途中経過表示--
printf("%2d) ",iS);
for( i=0; i<MAX; i++ ) printf("%d ",data[i]);
printf("\n");
}
printf("\nソート後\n");
for( i=0; i<MAX; i++ ) printf("%d ",data[i]);
printf("\n");
}
|