Java数据结构——排序(未完待续)

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));      // 输出数组
        }
    }
}

三、未完待续

猜你喜欢

转载自blog.csdn.net/qq_41824825/article/details/121104693