public class BubbleSort {
/**
* @param args
*/
public static void main(String[] args) {
int arr[] = { 2, 1, 4, 5, 6, 7, -1, -5, 99, 0 };
System.out.println("排序前:");
printArray(arr);
bubbleSort(arr);
System.out.println("排序后:");
printArray(arr);
}
/**
* 冒泡排序
* 时间复杂度O(n^2)
* 通过相邻记录的两两比较和位置交换,使关键字最小的记录如“气泡”一样逐渐往上“飘浮”直至“水面”。
* @param array
*/
private static void bubbleSort(int array[]){
int temp;
int exchange = 0;
for(int i = 0, len = array.length; i < len; i++){
for(int j = len-1; j > i; j--){
if(array[j] < array[j - 1]){
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
exchange = 1;
}
if(exchange == 0){
return ;//有序,无序排列
}
}
}
}
/**
* 打印数组
* @param arr
*/
private static void printArray(int arr[]) {
for (int i = 0, len = arr.length; i < len; i++) {
if (i == 0) {
System.out.print("{" + arr[i] + ", ");
} else if (i == len - 1) {
System.out.print(arr[i] + "}");
} else {
System.out.print(arr[i] + ", ");
}
}
System.out.println();
}
}
交换排序之冒泡排序
最新推荐文章于 2022-08-02 10:08:39 发布