<pre name="code" class="java">public class BubbleSortTest{
public static void bubbleSort(int[] a){
for(int j=a.length-1;j>0;j--){////j是最后一个需要比较的元素下标,也是需要循环的次数
//每一次循环都得到一个最大数,下次就不用参加比较,下标j慢慢减小
for(int i=0;i<j;i++){ //内层需要比较到下标范围j
if (a[i]>a[i+1]){ //相邻元素比较,如果角标小的元素大于角标大的元素 则交换位置
int temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
}
public static void main(String[] args){
int[] array = {4,7,8,9,3,2,10,14,11,21,18,0,1};
bubbleSort(array);
for (int i=0;i<array.length;i++) {
System.out.println(array[i]);
}
}
}
在sublime中编辑的程序,javac 直接编译后报错 编码GBK不可映射字符集
google后加参数 -encoding UTF-8 解决
另java文件另存为ANSI貌似也可以
另一种
public class BubbleSort2{
public static void bubbleSort(int[] a){
for(int j=0;j<a.length-1;j++){
for(int i=0;i<a.length-j-1;i++){
if (a[i]>a[i+1]){
int temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
}
public static void main(String[] args){
int[] array = {4,7,8,9,3,2,10,14,11,21,18,0,1};
bubbleSort(array);
for (int i=0;i<array.length;i++) {
System.out.println(array[i]);
}
}
}