你的位置:首页 > Java教程

[Java教程]【黑马程序员】


------- android培训、java培训、期待与您交流! ----------

 

冒泡排序和选择排序

  冒泡排序(BubbleSort)的意思是,按照顺序依次将两个元素比较大小,按照要求把大数上浮或者下沉。每捋一次,就把选择到的最大的或者最小的放到底部了。有限次后,就把所有的数都按照一个方向排列整齐了。
 
 1 package blog; 2  3 public class sortarray { 4  5   public static void main(String[] args) { 6     //定义一个数组 7     int[] shuzu={8,74,54,48,56,52,45,35,566,49}; 8     //冒泡排序,外循环是数组的长度-1.两两比较,要翻转的次数是数组的长度-1个。 9     for(int i=0;i<shuzu.length-1;i++){ 10       //内循环 因为是当前与后一个比较所以是length-1,整体翻i次,应该总次数-i。11       for(int j=0;j<shuzu.length -i-1;j++){12         if(shuzu[j]>shuzu[j+1]){13           //交换两个数组变量14           shuzu[j+1]=shuzu[j+1]^shuzu[j];15           shuzu[j]=shuzu[j+1]^shuzu[j];16           shuzu[j+1]=shuzu[j+1]^shuzu[j];17         }18       }19       20     }21     22     //遍历数组23     for (int i : shuzu) { 24       System.out.println(i); 25     } 26   }27 28 }

 


直接选择排序(Straight Select Sorting)的原理也很简单,就是第一遍把数组最小的值挑出来放到数组的第一个元素中,第二遍又把剩下的元素最小的放到第二个元素中。继续下去,有限次后。把数组里面的元素按照从小到达排列好了。
 

 1 package blog; 2  3 public class sortjava2 { 4  5   public static void main(String[] args) { 6     //  7     int[] shuzu={8,74,54,48,56,52,45,35,566,49}; 8     //直接选择排序,外循环是数组的长度-1.重复的次数应该是数组的长度-1。 9         for(int i=0;i<shuzu.length;i++){ 10           11           //内循环 要把未确定最小的数都再筛选一遍。所以次数应该小于数组长度-i。12           for(int j=i+1;j<shuzu.length;j++){13             if(shuzu[i]>shuzu[j]){14               int a=shuzu[i];15               shuzu[i]=shuzu[j];16               shuzu[j]=a;17               }18           19           }20         }21           //遍历数组22           for (int c : shuzu) { 23             System.out.println(c); 24           } 25     }26   27 }