输入待排序数,输入0结束,利用直接插入排序从小到大排序。
例:
输入:1 3 4 5 6 2 0
输出:1 2 3 4 5 6
C++代码:
#include <iostream>
using namespace std;
int main()
{
int num[20];
int i=1,j,n;//i从1开始
cin>>num[1];//num[0]闲置
while(num[i]!=0)
{
i++;
cin>>num[i];
}
n=i;
for(i=2; i<n; i++)
if(num[i]<num[i-1])
{
num[0]=num[i];//利用num[0]暂存
num[i]=num[i-1];
for(j=i-2; num[0]<num[j]; j--) //从后往前寻找插入位置
num[j+1]=num[j];
num[j+1]=num[0];
}
for(i=1;i<n;i++)
cout<<num[i]<<" ";
return 0;
}
C代码只要将输入输出以及头文件改成C的即可。