Java_Day04数组基础

本文介绍了一个简单的Java程序,用于通过用户输入来排序六个整数,并详细分析了程序中的冒泡排序算法实现及其存在的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.util.Scanner;

public class SortPrint{
    public static void main(String [] args) {
        
        int [] number = new int[6];

        Scanner sr = new Scanner(System.in);
        System.out.println("Please enter the first number");
        number[0] = sr.nextInt();
        System.out.println("Please enter the second number");
        number[1] = sr.nextInt();
        System.out.println("Please enter the third number");
        number[2] = sr.nextInt();
        System.out.println("Please enter the forth number");
        number[3] = sr.nextInt();
        System.out.println("Please enter the fifth number");
        number[4] = sr.nextInt();
        System.out.println("Please enter the sixth number");
        number[5] = sr.nextInt();


        int bigger ;
        // int swap = 0;

        // for (int i = 1; i < number.length-1; i++) {
        //     if (number[length-1] < number[i]) {
        //         number[length-1] = number[i];
        //     }
        // }

        for (int j = number.length-1; j > 0; j--) {
            for (int i = 0; i < j; i++  ) {
                if (number[j] < number[i]) {
                    System.out.println("交换前序列如下:" +number[0]+" " + 
                        number[1] + " " +number[2]+ " " +number[3]);
                    bigger = number[j];
                    number[j] = number[i];
                    number[i] = bigger;

                    System.out.println("交换后序列如下:" +number[0]+" " + 
                        number[1] + " " +number[2]+ " " +number[3])    ;
                }
            }
            System.out.println();
        }


        System.out.print("按照从小到大排序后的顺序为 :");

        for (int i = 0; i < number.length; i++ ) {
            System.out.print(number[i]+ " ");
        }

        System.out.println();
    }
}

 

 

 

day04作业里面有

排序三个整数的题,第一反应是那种冒泡找最大值的方法

然而实际需要所有都排序,所以,得变成,依次找最大值,先从最后一个元素length-1开始,与前面的比较,如果前面的元素有比它大的,那就把它值赋给最后的,但是其他的元素的值还要用来排序,所以只能进行交换,将大的swap给length-1,然后用两个嵌套for循环做,到这里看起来是没什么问题了,但是实际运行2,6,4,5输出的结果为2,5,4,6,推算了好几遍,发现是在外层最后一次循环的时候,会将已经找到的更大值再交换给较小的值,所以,内层循环的限制条件应该为 i < j  而不是  i < length-1  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值