/*
冒泡排序:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来
第一轮:先比较第一和第二,然后判断是否交换,再比较第二和第三,一直比较到最后一位
(第一轮结束之后发现这组数的最后一位就是这组数的最值了(最大或者最小值))
第二轮:同第一轮比较一样,因为最后一个数已经是最值了,所以只要比较到倒数第二位数
之后以此类推...
*/
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]+",");
}
}
}
|