zoukankan      html  css  js  c++  java
  • !数列有序

    Problem Description
    有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
     Input
    输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
     Output
    对于每个测试实例,输出插入新的元素后的数列。
     Sample Input
    3 3
    1 2 4
    0 0
    Sample Output
    1 2 3 4
     
     
    Time Limit Exceeded
     
    code1:

    #include<stdio.h>
    int main()
    {
           int n,m,i,j,e,a[100],t1,t2;
           while(scanf("%d%d",&n,&m)!=EOF&&(n!=0||m!=0))
           {
                    scanf("%d",&a[0]);
                    i=1;
                   while(i<n)
                   {
                             scanf("%d",&a[i]);
                             if(a[i]>a[i-1])
                             i++;
                  }
               if(m>a[n-1])
                       a[n]=m;
               else
               {
                         for(i=0;i<n;i++)
                         {
                                    if(m<a[i])
                                    {
                                              t1=a[i];
                                              a[i]=m;
                                              for(j=i+1;j<=n;j++)
                                              {
                                                    t2=a[j];a[j]=t1;t1=t2;
                                              }
                                           break;
                                    }
                         }
             }
           for(e=0,i=0;i<=n;i++)
           {
                 if(e!=0)
                       printf(" ");
                printf("%d",a[i]);
                e++;
           }
              printf(" ");
         }
       return 0;
    }

    Time Limit Exceeded

    code2:

    #include<stdio.h>
    int main()
    {
              int n,m,i,j,e,a[100],t1,t2,*p=a;
              while(scanf("%d%d",&n,&m)!=EOF&&(n!=0||m!=0))
               {
                              scanf("%d",p);
                              i=1;
                             while(i<n)
                             {
                                   scanf("%d",p+i);
                                   if(*(p+i)>*(p+i-1))
                                    i++;
                             }
                       if(m>a[n-1])
                               a[n]=m;
                       else
                      {
                            for(i=0;i<n;i++)
                             {
                                  if(m<a[i])
                                   {
                                          t1=a[i];
                                          a[i]=m;
                                          for(j=i+1;j<=n;j++)
                                           {
                                               t2=a[j];a[j]=t1;t1=t2;
                                            }
                                     break;
                                   }
                           }
                    }
                  for(e=0,p=a;p<=(a+n);p++)
                  {
                          if(e!=0)
                         printf(" ");
                         printf("%d",*p);
                          e++;
                  }
               printf(" ");
              }
        return 0;
    }

     
  • 相关阅读:
    Neutron介绍
    docker下jenkins环境搭建
    OpenStack allinone环境搭建
    go中channel的部分理解
    总结一下我的面试经历
    MYSQL基础总结(1)
    struts2中判断数组的长度
    antd组件Checkbox
    React使用antd组件Radio
    React使用Echarts
  • 原文地址:https://www.cnblogs.com/gongpulin/p/3885850.html
Copyright © 2011-2022 走看看