/**
* 冒泡排序--时间复杂度 n^2
* @author Smilexs
* @time 2015/9/25
*/
public class BubbleSort {
public static void main(String[] args) {
int[] array=new int[]{12,35,3,18,75,31,76,8,5};
BubbleSortFromMaxToMin(array);
System.out.println("从大到小排序为:"+Arrays.toString(array));
}
/**
* 冒泡排序:从大到小
* @param array
* @return
*/
private static void BubbleSortFromMaxToMin(int[] array) {
//i:每次冒泡范围 j:两两比较
for (int i = array.length; i >0; i--) {
for (int j = 0; j < i-1; j++) {
//从小到大,只要符号改为 > 即可
if(array[j] < array[j+1]){
/*方式1,交换值
int temp=array[j];
array[j] = array[j+1];
array[j+1]=temp;
*/
//方式2,交换值
array[j] = array[j]^array[j+1];
array[j+1] = array[j]^array[j+1];
array[j] = array[j]^array[j+1];
}
}
}
}
}
结果:
冒泡算法原理讲解链接:http://wiki.jikexueyuan.com/project/easy-learn-algorithm/bubble-sort.html