C++ 一边输入一边排序

来源:百度知道 编辑:UC知道 时间:2024/05/15 00:45:25
设计一个程序边输入数据,边对数据进行排序(从小到大)。

就是经典的插入排序算法

#include<stdio.h>
#include<string.h>
void main()
{ int a[10],j,i,k;
for(i=0;i<10;i++)
{ scanf("%d",&a[i]);
if(i!=0)
{
for(j=0;j<i;j++) if(a[i]<a[j]){ k=a[i]; a[i]=a[j];a[j]=k;}
}
}

for(i=0;i<10;i++) printf("%d ",a[i]);
}

符合么

就输一个插一个呗,从插入第二个元素的时候就开始排,这样效率很高的。

#include<iostream.h>
int f(int a[],int n)
{ int c=0;
for(int e=n;e>0;e--)
if(a[e-1]>a[e])
{c=a[e-1];
a[e-1]=a[e];
a[e]=c;}
return n;
}
void main()
{ int s[1000];
int i=0,n=0;
cout<<"请输入一个数字:"<<endl;
cin>>s[0];
while(s[i]!=0)
{ n=f(s,i);
i++;
cout<<"请输入一个数字:"<<endl;
cin>>s[i];
}
for(int d=0;d<i;d++)
cout<<s[d]<<'