题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2019
题目大意:插入排序,只要要插入的数比左边的打,比右边的小即可插入,输出有序序列!
以下提供两种方法,供参考~
第一种:
1 #include <stdio.h> 2 int main () 3 { 4 int i,n,m,a[110]; 5 while (scanf("%d%d",&n,&m)!=EOF) 6 { 7 if (n==0&&m==0) 8 break; 9 for (i=0; i<n; i++) 10 scanf("%d",&a[i]); 11 for (i=0; i<n; i++) 12 if (m>a[i]) 13 printf ("%d ",a[i]); 14 else 15 break; 16 printf ("%d",m); 17 for (; i<n; i++) 18 printf(" %d",a[i]); 19 printf (" "); 20 } 21 return 0; 22 }
第二种:
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 int main () 5 { 6 int i,n,m,a[101]; 7 while (cin>>n>>m) 8 { 9 if (n==0&&m==0) 10 break; 11 for (i=0; i<n; i++) 12 cin>>a[i]; 13 for (i=n;a[i-1]>m; i--) 14 a[i]=a[i-1]; 15 a[i]=m; 16 for (i=0; i<=n-1; i++) 17 printf ("%d ",a[i]); 18 printf ("%d ",a[i]); 19 } 20 return 0; 21 }