public class BubbleSort {
public static void sort(int[] nums) {
if (nums == null || nums.length < 2) {
return;
}
for (int i = 0; i < nums.length - 1; i++) {
for (int j = 0; j < nums.length - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
swap(nums, j, j + 1);
}
}
}
}
private static void swap(int[] nums, int n1, int n2) {
if (n1 >= nums.length || n2 >= nums.length) {
throw new RuntimeException("n1 or n2 illegal");
}
int temp = nums[n1];
nums[n1] = nums[n2];
nums[n2] = temp;
}
}
public class BubbleSort2 {
public static void sort(int[] nums) {
if (nums == null || nums.length < 2) {
return;
}
boolean swapped = false;
for (int i = 0; i < nums.length - 1; i++) {
swapped = false;
for (int j = 0; j < nums.length - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
swap(nums, j, j + 1);
swapped = true;
}
}
if (!swapped) {
return;
}
}
}
private static void swap(int[] nums, int n1, int n2) {
if (n1 >= nums.length || n2 >= nums.length) {
throw new RuntimeException("n1 or n2 illegal");
}
int temp = nums[n1];
nums[n1] = nums[n2];
nums[n2] = temp;
}
}