用選擇法對10個整數按從小到大排序,要求使用數組。
算法思想:
第一次選擇:從10個整數中挑出當中最小的整數,拿出來;
第二次選擇:從余下的9個整數中挑出當中最小的整數,拿出來,放到上一次挑出的數的后面。
第三次選擇:從余下的8個整數中挑出當中最小的整數。拿出來,放到上一次挑出的數的后面。
…………
以此類推。直到所有挑完。
#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"請輸入10個整數"<<endl;
int a[10],i,b[10],j,n=0;
for(i=0;i<10;i++)
{
cin>>a[i]; //輸入10個數,依次放到數組a里。
}
for(j=1;j<=10;j++) //共要進行10次選擇
{
for(i=0;i<10-j;i++) //這個循環將挑出余下數中最小的數
{
int t;
if(a[i]<a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
}
b[n]=a[10-j]; //將挑出的數依次放到數組b里
n++;
}
for(n=0;n<10;n++)
{
cout<<b[n]<<" "; //按順序輸出數組b里存放的數
}
return 0;
}
