java吧 关注:1,258,603贴子:12,752,602
  • 27回复贴,共1
for 循环
有一个int 数组 然后大小为num
然后现在要你用FOR循环来使前半部分从小到大 后半部分从大到小
不能先整体排列
不能使用较大内存


1楼2013-04-23 20:37回复
    拆数组啊,,,


    来自Android客户端2楼2013-04-23 20:40
    收起回复
      广告
      立即查看

      public class test {public static void main(String[] args) {int pigit[]={3,5,8,2,1,43,76,87,0,8,78,68,129};int number=12;for(int i=0;i<number;i++){System.out.println(pigit[i]);}System.out.println();int c=number/2;for(int i=0;i<number/2;i++){++c;for(int z=1;z<number/2;z++){if(pigit[i]>pigit[z]){int b;b=pigit[i];pigit[i]=pigit[z];pigit[z]=b;}}for(int d=number/2;d<number-1;d++){if(pigit[d]<pigit[c]){int a;a=pigit[d];pigit[d]=pigit[c];pigit[c]=a;}}}System.out.println();for(int i=0;i<number;i++){System.out.println(pigit[i]);}}}


      3楼2013-04-23 20:48
      回复
        public class test {
        public static void main(String[] args) {
        int pigit[]={3,5,8,2,1,43,76,87,0,8,78,68,129};
        int number=12;
        for(int i=0;i<number;i++){
        System.out.println(pigit[i]);
        }
        System.out.println();
        int c=number/2;
        for(int i=0;i<number/2;i++){
        ++c;
        for(int z=1;z<number/2;z++){
        if(pigit[i]>pigit[z]){
        int b;
        b=pigit[i];
        pigit[i]=pigit[z];
        pigit[z]=b;
        }
        }
        for(int d=number/2;d<number-1;d++){
        if(pigit[d]<pigit[c]){
        int a;
        a=pigit[d];
        pigit[d]=pigit[c];
        pigit[c]=a;
        }
        }
        }
        System.out.println();
        for(int i=0;i<number;i++){
        System.out.println(pigit[i]);
        }
        }
        }


        4楼2013-04-23 20:52
        回复
          新建一个int数组,被循环赋值0~num.lengt/2。再一个数组int,被赋值num.length/2~num.length。这就是数组的前半段和后半段,然后分别排序输出。


          来自Android客户端5楼2013-04-23 20:55
          收起回复
            我的思路是num=数组的长度/2,前办部分用一个for循环,判断条件是大于等于0,num--,然后写个方法让他从小到大排序。后半部分用另外一个for循环,判断条件是小于数组长度,用个降序的方法排列!大致是这样,新手别见笑!


            来自Android客户端6楼2013-04-23 21:09
            收起回复

              public class test {
              public static void main(String[] args) {
              int pigit[]={3,5,8,2,1,43,76,87,0,8,78,68,129};
              for(int i=0;i<pigit.length;i++){
              System.out.println(pigit[i]);
              }
              System.out.println();
              int c=pigit.length/2;
              for(int i=0;i<pigit.length/2;i++){
              c++;
              for(int z=1;z<pigit.length/2;z++){
              if(pigit[i]>pigit[z]){
              int b;b=pigit[i];pigit[i]=pigit[z];pigit[z]=b;
              }
              }
              for(int d=pigit.length/2;d<pigit.length;d++){
              if(pigit[d]<pigit[c]){
              int a;a=pigit[d];pigit[d]=pigit[c];pigit[c]=a;
              }
              }
              }
              System.out.println();
              for(int i=0;i<pigit.length;i++){
              System.out.println(pigit[i]);
              }
              }
              }
              怎么就不对呢


              7楼2013-04-23 21:20
              回复
                public class test {
                public static void main(String[] args) {
                int pigit[]={3,5,8,2,1,43,76,87,0,8,78,68,129};
                for(int i=0;i<pigit.length;i++){
                System.out.println(pigit[i]);
                }
                System.out.println();
                int c=pigit.length/2;
                for(int i=0;i<pigit.length/2;i++){
                c++;
                for(int z=1;z<pigit.length/2;z++){
                if(pigit[i]>pigit[z]){
                int b;b=pigit[i];pigit[i]=pigit[z];pigit[z]=b;
                }
                }
                for(int d=pigit.length/2;d<pigit.length;d++){
                if(pigit[d]<pigit[c]){
                int a;a=pigit[d];pigit[d]=pigit[c];pigit[c]=a;
                }
                }
                }
                System.out.println();
                for(int i=0;i<pigit.length;i++){
                System.out.println(pigit[i]);
                }
                }
                }
                怎么就不对呢
                @烂白菜在北京 求帮助


                8楼2013-04-23 21:21
                回复
                  广告
                  立即查看
                  public class 排序 {
                  /** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint array[]={3,5,8,2,1,43,76,87,0,8,78,68,129};int number=array.length/2;int key,j;System.out.println("原来的数组:");for(int i:array){System.out.print(i+" ");}for(int i=1;i<number;i++){key=array[i];j=i-1;while(j>=0 && array[j]>key){array[j+1]=array[j];array[j]=key;j=j-1;}}for(int i=number;i<array.length;i++){key=array[i];j=i-1;while(j>=number && array[j]<key){array[j+1] = array[j];array[j] = key;j=j-1;}}System.out.println();System.out.println("现在的数组:");for(int i=0;i<array.length;i++){System.out.print(array[i]+" ");}}
                  }


                  9楼2013-04-23 23:12
                  回复
                    学校断网了,没排版,自己用eclipse自动排版吧!


                    来自Android客户端11楼2013-04-23 23:30
                    回复
                      这题考察的就是你会不会使用排序算法。很好处理的的问题啊。
                      public class Test {
                      public static void main(String[] args) {
                      int[] a = {3,5,8,2,1,43,76,87,0,8,78,68,129};
                      for(int i=0; i<a.length/2; i++) {
                      int temp = 0;
                      for(int j=i; j<a.length/2; j++) {
                      if(a[i] > a[j]) {
                      temp = a[i];
                      a[i] = a[j];
                      a[j] = temp;
                      }
                      }
                      }
                      for(int i=a.length/2; i<a.length; i++) {
                      int temp = 0;
                      for(int j=i; j<a.length; j++) {
                      if(a[i] < a[j]) {
                      temp = a[i];
                      a[i] = a[j];
                      a[j] = temp;
                      }
                      }
                      }
                      for(int i=0; i<a.length; i++) {
                      System.out.print(a[i] + " ");
                      }
                      }
                      }


                      13楼2013-04-24 00:11
                      回复
                        将数组前半段用冒泡排序顺序排列,后半段用冒泡排序倒序排列。
                        你要是出问题必然是出在对于冒泡排序掌握不熟练。


                        14楼2013-04-24 00:13
                        回复
                          这个貌似是一种算法、就是排列数组时候的算法、我忘了叫什么了···就是先随意找一个数卡中间、然后两边分、用递归做、叫什么来的、求LZ赐教·


                          15楼2013-04-24 00:18
                          收起回复