Java数据结构——排序
一、冒泡排序
public class demo02 {
public static void main(String[] args) {
// 冒泡排序
int[] nums = {
3,5,1,7,2,6,4,9,8,10};
int temp;
for (int i = 0; i < nums.length-1; i++) {
// 从0开始,所以要 -1
for (int j = 0; j < nums.length-1-i; j++) {
// 每一轮比较的次数都逐轮递减,因为每一轮过后,都有一个数据排好序。
if (nums[j]>nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(nums)); // 输出数组
}
}
二、选择排序
public class demo03 {
public static void main(String[] args) {
// 选择排序
int[] nums = {
3,6,4,8,7,0,1,10,9};
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;
}
} // 此时比较完后,min代表的是最小值的索引,i反而是比较大的值的索引,此时要把两个数交换
if (min != i){
// 如果索引发生变化,则交换数值
int temp = nums[min]; // 把最小值保存起来
nums[min] = nums[i]; // 此时 i 对应的是大的数值,小的数值应放在最前,所以把这个值放到 min 那边
nums[i] = temp; // temp保存的最小值放到最前面
}
System.out.println(Arrays.toString(nums)); // 输出数组
}
}
}