利用for循环实现自定义数组长度的数组从小到大依次输出(涉及自定义数组长度、键盘输入数组内数字及输出数组内数字)

package com.xjc;

import java.util.Scanner;

public class ShuLiePaiXu {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	// 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。

	// 获取数列长度
	Scanner input = new Scanner(System.in);
	int n = input.nextInt();

	// 创建一个数组a,限制长度为n
	int a[] = new int[n];

	// 用for循环实现多次从控制台输入,完成为数组中的每一位赋值
	for (int i = 0; i < a.length; i++) {
		a[i] = input.nextInt();
	}

	// 最外层for循环实现数组里的每一个数都能完成比较
	for (int j = 0; j < a.length - 1; j++) {

		// 在数组a里,第一个数用a[0]表示,第二个数用a[1]表示,一次类推
		// 在下面这个for循环中,i=j+1第一次循环变成i=1,
		// 把i=1带入if语句里得到a[1]<a[0],实现第二个数和第一个数的比较。
		// 如果a[1]<a[0],则程序执行if语句里的条件,实现a[i]变成a[j],a[j]变成a[i]。
		// 两者互换后原来两者比较较小的那个数,替代if语句的条件中的a[j],继续与下一个数比较

		// 内存for循环完成后,得到一个最小值排在第一位的数组
		// 返回外层for循环,j++一次,j变成1,
		// 再带入内层for循环,从第三位数开始依次和第二位数比较,第一位数不再参与比较
		// 第二次内层for循环完成循环后,会把本次循环得到的最小值,放在所有参与了本次比较的数字的最前面
		// 再返回外层for循环,开始第三次循环,,,,依次类推。。。
		for (int i = j + 1; i < a.length; i++) {
			if (a[i] < a[j]) {
				int temp = a[j];
				a[j] = a[i];
				a[i] = temp;
			}
		}
	}

	// 直至外层for循环完成所有循环,这个时候得到的数组就是从小到大排列的数组了

	// 再用for循环从a[0]开始依次输出数组
	for (int j = 0; j < a.length; j++) {
		System.out.print(a[j] + "  ");
	}
}

}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值