java19 排序算法 2022-02-11

/**
冒泡排序,外层控制轮数,排一轮后最大的数会在最后,下一轮不用再比较上一轮最后一个数
 23,45,12,66,98,60
 23,12,45,66,60,98第一轮
 12,23,45,60,66   第二轮
 12,23,45,60      第三轮
 12,23,45         第四轮
 12,23            第五轮
*/
public class Test1 {
    public static void main(String[] args) {
        int [] nums={23,45,12,66,98,60};
        int c;
        for (int i = 0; i < nums.length-1; i++) {
            for (int j = 0; j nums[j+1]){
                    c=nums[j];
                    nums[j]=nums[j+1];
                    nums[j+1]=c;
                }
            }
        }
        for(int n:nums){
            System.out.println(n);
        }

    }
}
/**
选择排序,每一轮寻找最小的数放到最前面,外层控制轮数
 23,45,12,66,98,60
 12,45,23,66,98,60第一轮 比较5次
 12,23,45,66,98,60第二轮 4次
 12,23,45,66,98,60第三轮 3次
 12,23,45,60,66,98第四轮 2次
 12,23,45,60,66,98第五轮 1次
*/
public class Test1 {
    public static void main(String[] args) {
        int [] nums={23,45,12,66,98,60};
        int c;
        for (int i = 0; i < nums.length-1; i++) {
            int minIndex=i;//每轮假设一个最小的下标
            for (int j = i+1; j  nums[j]) {
                    minIndex = j;
                }
            }
            //判断需要交换的数下标是否为自己
            if(minIndex!=i){
                c=nums[i];
                nums[i]=nums[minIndex];
                nums[minIndex]=c;
            }
        }
        for(int n:nums){
            System.out.println(n);
        }

    }
}

你可能感兴趣的:(java19 排序算法 2022-02-11)