public void bubbleSort(int[] nums) {
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);
}
}
}
}
// 交换数组指定位置的元素
public void swap(int[] nums, int a, int b) {
int tmp = nums[a];
nums[a] = nums[b];
nums[b] = tmp;
}
方法二:选择排序
和冒泡法类似,减少了交换的次数
遍历数组,找寻最小的元素,让它与数组第一个元素交换位置
遍历剩下数组,找寻最小元素,让它与剩下元素中第一个交换
public void chooseSort(int[] nums) {
for (int i = 0; i < nums.length - 1; i ++) {
int min = i;
for (int j = i+1; j < nums.length; j++) {
if (nums[min] > nums[j]) {
min = j;
}
}
swap(nums, i, min);
}
}
对于一个长度为 N 的整数数组进行排序。
方法一:冒泡排序
方法二:选择排序
方法三:插入排序