冒泡排序(Bubble Sort)是一种交换排序,基本思想:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
下面给出具体实现的代码:
public class BubbleSort {
public static void swap(int arr[], int x, int y) {
int tmp = arr[x];
arr[x] = arr[y];
arr[y] = tmp;
}
public static void bubbleSort(int arr[]) {
boolean flag = true;
for (int i=0;i<arr.length && flag;i++) { //若flag为true则退出循环
flag = false;
for (int j=arr.length-2;j>=i;j--) { //j从后往前循环
if (arr[j] > arr[j+1]) { //前一个大于后一个
swap(arr, j, j+1); //交换arr[j]与arr[j+1]的值
flag = true; //若有交换则flag设为true
}
}
}
}
测试:
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = {2, 5, 7, 4, 1, 9, 0, 3, 6, 8};
bubbleSort(a);
for (int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
结果: