冒泡排序
Jihongchang(讨论 | 贡献)2022年8月12日 (五) 00:18的版本 (建立内容为“<syntaxhighlight lang="java"> public class BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length < 2) {…”的新页面)
public class BubbleSort {
public static void bubbleSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
for (int e = arr.length - 1; e > 0; e--) {// 0 ~ e
for (int i = 0; i < e; i++) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
}
}//end for
}//end for
}//end bubbleSort
/**
* 交换 arr 的 i 和 j 位置上的值
* 相较于:
* int tmp = arr[i];
* arr[i] = arr[j];
* arr[j] = tmp;
* 的写法,节省了一个额外的空间
* @param arr
* @param i
* @param j
*/
public static void swap(int[] arr, int i, int j) {
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[i] ^ arr[j];
arr[i] = arr[i] ^ arr[j];
}
public static void main(String[] args) {
int[] arr = new int[]{6, 8, 4, 3, 9, 7};
SelectionSort.selectionSort(arr);
System.out.print(arr[0]);
for(int i = 1; i < arr.length; i++){
System.out.print(", " + arr[i]);
}
}
}