首页 > 技术文章 > 冒泡排序、选择排序(升序排序,降序排序)

janesyf 2017-11-15 21:11 原文

1.选择排序

代码:

                 int[] arr = {1,8,6,3,9,5,4,7,11};
                 int[] brr = {1,8,6,3,9,5,4,7,11};
                int[] crr = {1,8,6,3,9,5,4,7,11};
                int[] drr = {1,8,6,3,9,5,4,7,11};
                System.out.println("==================选择排序(左小右大)============================");
                System.out.println("方法1.");
                for(int i=0; i<arr.length-1; i++){ 
                          for(int j=i+1; j<arr.length; j++){
                                    if(arr[i] > arr[j]){
                                           int c = arr[i];
                                           arr[i] = arr[j];
                                           arr[j] = c;
                                    }
                          }
                          System.out.print("外循环打印第"+(i+1)+"次:");
                          for(int ii=0;ii<arr.length;ii++){
                                 System.out.print(arr[ii]+"\t");
                          }
                          System.out.println("");
             }
              System.out.println("方法2.");
                     for(int i=brr.length-1; i > 0; i--){ 
                            for(int j=i-1; j>0; j--){
                                   if(brr[i] < brr[j]){
                                          int c = brr[i];
                                          brr[i] = brr[j];
                                          brr[j] = c;
                                   }
                            }
                            System.out.print("外循环打印第"+(brr.length-i)+"次:");
                            for(int ii=0;ii<brr.length;ii++){
                                   System.out.print(brr[ii]+"\t");
                            }
                            System.out.println("");
              }
              System.out.println("==================选择排序后(左小右大)============================");
              System.out.println("==================选择排序后(左大右小)============================");
              System.out.println("方法1.");
              for(int i=0; i<crr.length-1; i++){ 
                     for(int j=i+1; j<crr.length; j++){
                            if(crr[i] < crr[j]){
                                   int c = crr[i];
                                   crr[i] = crr[j];
                                   crr[j] = c;
                            }
                     }
                     System.out.print("外循环打印第"+(i+1)+"次:");
                     for(int ii=0;ii<crr.length;ii++){
                            System.out.print(crr[ii]+"\t");
                     }
                     System.out.println("");
              }


              System.out.println("方法2.");
               for(int i=drr.length-1; i > 0; i--){ 
                     for(int j=i-1; j>=0; j--){
                             if(drr[i] > drr[j]){
                                   int c = drr[i];
                                   drr[i] = drr[j];
                                   drr[j] = c;
                            }
                     }
                     System.out.print("外循环打印第"+(brr.length-i)+"次:");
                     for(int ii=0;ii<drr.length;ii++){
                            System.out.print(drr[ii]+"\t");
                     }
                     System.out.println("");
              }
System.out.println("==================选择排序后(左大右小)============================");

打印结果:

 

2.冒泡排序

代码:

int[] arr = {1,8,6,3,9,5,4,7,11};
int[] brr = {1,8,6,3,9,5,4,7,11};
int[] crr = {1,8,6,3,9,5,4,7,11};
int[] drr = {1,8,6,3,9,5,4,7,11};
System.out.println("==================冒泡排序(左小右大)============================");//升序排序
System.out.println("方法1.");
for(int i=0; i<arr.length-1; i++){ 
       for(int j=arr.length-1; j>i; j--){
              if(arr[j-1] > arr[j]){
                     int c = arr[j-1];
                     arr[j-1] = arr[j];
                     arr[j] = c;
              }
       }
       System.out.print("外循环打印第"+(i+1)+"次:");
       for(int ii=0;ii<arr.length;ii++){
              System.out.print(arr[ii]+"\t");
       }
       System.out.println("");
}
System.out.println("方法2.");
for(int i=brr.length-1; i > 0; i--){ 
       for(int j=0; j<i; j++){
              if(brr[j+1] < brr[j]){
                     int c = brr[j+1];
                     brr[j+1] = brr[j];
                     brr[j] = c;
              }
       }
       System.out.print("外循环打印第"+(brr.length-i)+"次:");
       for(int ii=0;ii<brr.length;ii++){
              System.out.print(brr[ii]+"\t");
       }
       System.out.println("");
}
System.out.println("==================冒泡排序后(左小右大)============================");
System.out.println("==================冒泡排序后(左大右小)============================");//降序排序
System.out.println("方法1.");
for(int i=0; i<arr.length-1; i++){ 
       for(int j=arr.length-1; j>i; j--){
              if(arr[j-1] < arr[j]){
                     int c = arr[j-1];
                     arr[j-1] = arr[j];
                     arr[j] = c;
              }
       }
       System.out.print("外循环打印第"+(i+1)+"次:");
       for(int ii=0;ii<arr.length;ii++){
              System.out.print(arr[ii]+"\t");
       }
       System.out.println("");
}
System.out.println("方法2.");
for(int i=brr.length-1; i > 0; i--){ 
       for(int j=0; j<i; j++){
              if(brr[j] < brr[j+1]){
                     int c = brr[j+1];
              vbrr[j+1] = brr[j];
                     brr[j] = c;
              }
       }
       System.out.print("外循环打印第"+(brr.length-i)+"次:");
       for(int ii=0;ii<brr.length;ii++){
              System.out.print(brr[ii]+"\t");
       }
       System.out.println("");
}
System.out.println("==================冒泡排序后(左大右小)============================");

打印结果:

 

推荐阅读