| /* 冒泡排序:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来
 第一轮:先比较第一和第二,然后判断是否交换,再比较第二和第三,一直比较到最后一位
 (第一轮结束之后发现这组数的最后一位就是这组数的最值了(最大或者最小值))
 第二轮:同第一轮比较一样,因为最后一个数已经是最值了,所以只要比较到倒数第二位数
 之后以此类推...
 */
 class BubbleSort
 {
 public static void main(String[] args)
 {
 int[] arr = {5,2,9,4,6,7,3,1,8};
 for (int i=0; i<arr.length-1; i++)
 {
 for (int j=1; j<arr.length-i; j++)
 {
 if (arr[j-1] > arr[j]) //按照升序排列
 {
 //利用异或(^)让arr[i]和arr[j]的值换一下,也可以利用第三个变量来交换
 arr[j-1] = arr[j-1] ^ arr[j];
 arr[j] = arr[j-1] ^ arr[j];
 arr[j-1] = arr[j-1] ^ arr[j];
 }
 }
 }
 for (int i=0; i<arr.length; i++)
 {
 System.out.print(arr[i]+",");
 }
 }
 }
 
 |