排序——直接插入排序
排序——直接插入排序
#include <iostream>
using namespace std;
void InSort(int a[],int c)
{
int i,j;
for(i=2;i<=c;i++)//从第二个元素开始到最后一个元素
{
a[0]=a[i];//第一个
for(j=i-1;a[j]>a[0];j--)
{
a[j+1]=a[j];
}
a[j+1]=a[0];
}
//输出
for(int i=1;i<=c;i++)
{
printf("%d ",a[i]);
}
}
int main() {
// insert code here...
int a[100];
int c=0;
int i=1;
scanf("%d",&a[i]);
while(a[i]!=0)
{
//printf("%d %d\n",i,a[i]);
i++;
scanf("%d",&a[i]);
c++;
}
// for(int i=0;i<c;i++)
// {
// printf("%d ",a[i]);
// }
// printf("%d",c);
// printf("\n");
InSort(a,c);
return 0;
}
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
// insert code here...
int a[100];
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
//int j;
// 6
// 3 6 2 4 1
for(int k=2;k<=n;k++)
{
int key=a[k];
int m=k-1;
while((a[m]>key)&&(m>0))
{
int t;
t=a[m];
a[m]=a[m+1];
a[m+1]=t;
m=m-1;
}
a[m+1]=key;
}
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
还没有评论,来说两句吧...