赤色は現在の最小値です。黄色はソートされたリストです。ブルーは現行品です。 (写真はwikipediaより、少し早すぎます)
10の数字。昇順に並べ替えます。
1. 10 のうちの最小値を見つけて [0] に切り替えると、9 回の比較が必要になります
2.残りの9の最小値を見つけてa[1]に切り替えると、8回の比較が必要になります
。 。 .
1、10、9
2、9、8
3、8、7
4、7、6
5、6、5
6、5、4
7、4、3
8、3、2
9、2、1
結論: 10 個の数値の場合、最小値を見つけるのに 9 回必要であり、それぞれの比較には 1 つ足りない数値があります。
PHPでの実装:
リーリー
{
int i,j,m,t;
for(i=0;i
for(j=i+1;jif(配列[j]m=j; //k记下目前に到達した最小位置の位置
if(m!=i){
t=array[i];
配列[i]=配列[m];
配列[m]=t;
}
}
}
void main(){
int a[10];
for (int i=0;iscanf("%d",&a[i]);
selection_sort(a,10);
printf("排序结果範囲:");
for (i=0;iprintf("%d\n",a[i]);
}
{
int i,j,m,t;
for(i=0;i
for(j=i+1;jif(配列[j]m=j; //k记下目前に到達した最小位置の位置
if(m!=i){
t=array[i];
配列[i]=配列[m];
配列[m]=t;
}
}
}
void main(){
int a[10];
for (int i=0;iscanf("%d",&a[i]);
selection_sort(a,10);
printf("排序结結果:");
for (i=0;iprintf("%d\n",a[i]);
}