1--100000 数列按一定顺序排列,有一个数字排错,如何纠错?写出最好  
方法。两个数字呢?

解决方案 »

  1.   

    方法1.
    int temp=0;
    int[]a={1,2,....10000};
    for(int i=1;i<=1000;i++){
        for(int j=i+1;j<=1000;){
           if(a[i]<a[j]){
            temp=a[i];
             a[i]=a[j];
             a[j]=temp;
              }
            }
         }
    方法2:用java.util.arrays 类的方法!
      

  2.   

    int[]a={1,2,....10000}; 
    for(int i=0;i<a.length-1;i++){
     if(a[i]>a[a[i+1]]){
       System.out.println(a[i]);
       break;
      }
    }
      

  3.   

    arrays和system.arrayCopy()聪明人看的出来这个是好的方法!
      

  4.   

    arrays.sort();
    先排序,再new一个按顺序存储的1--100000的数组,
    再拿这两个数组比较,compare一下就找出了哪些数字不相同。
      

  5.   

    支持一下,java的意义就在于充分利用已有库函数~
      

  6.   

    int[] tes={那个数组};
    for(int i=0;i<100000;i++){
      if((tes[i+1]-tes[i])==1){
        System.out.println(tes[i]+"后面的数字:"+tes[i+1]+"排错了吧.");
       }
    }
      

  7.   

    三星移动创新者园地全新改版,真正为手机软件开发者提供帮助,谋福利。http://innovatorsamsungmobile.com/71 
    提供资源:
    1、 常用源代码样例库。
    2、 三星用户达八千九百万,市场份额占据第二位,存在巨大的商机。
    3、 三星专用SDK、API、新功能指导建议,集中的机型适配所需资源。
    4、 工程师答疑,帮助解决开发中的疑难杂症。
    5、 免费远程真机测试—远程互联网预约挂在网上的真机,上传软件测试,机型丰富。
    6、 三星在线商店,机器预装,帮你推销软件。让你轻松赢得第一桶金。

      

  8.   

    按一定顺序排列,可没说是降序还是升序,或者另外的顺序.
    看来只能是相邻位置错误算排错.
    拿22楼例子来讲:
    应该是 12345,排成了142356.亦即只需移动一个数字的位置(这里是4),就可以排成正确序列.
    设有函数f(x,y)判定x是否该放到y前方.如f(1,2)=true, f(1,5)=true, f(5,4)=false
    那么从1到N遍历,找出第一个让f(x1,x2)=false的数x1,
    有两种可能: 
    1)本该在x1之前的数x1'被移动到后方
    2)本该在后方的x1被移动到前方
    如果x1与后方近邻元素关系为true,那么显然是第1)中情况.找出第二个f为false的数就是答案.
    否则为2),x1即为答案.
    算法时间复杂度O(N)2个数被排错情况比较复杂,分多种情况讨论.楼下来解答吧.
      

  9.   

    上头分析优点小毛病,出现false的该是x1左边的数x0,其他判定没问题.