键盘录入10个数,并对这10个数用选择法和冒泡法从大到小排序

1、创建Scanner类

首先因为要用键盘录入10个数,要用到Scanner,所以先创建一个Scanner类;(注意使用Scanner类要导包)具体代码如下:

import java.util.Scanner;//导包

Scanner sc=new Scanner(System.in);//创建Scanner类

 2、定义数组

因为要录入10个元素所以接着创建一个长度为10的数组,对录入的数据进行存储;实现代码如下:

int[] nums=new int[10];

3、录入数据

数组定义完成之后,利用循环结构键盘录入10个数据存储到元素中,并利用Arrays类中的copyOf(注意使用Arrays中的方法也要导包)方法对录入的数组进行复制,得到一个与录入数据一摸一样的数组留着备用;实现代码如下:

import java.util.Arrays;//导包

for (int i = 0; i < nums.length; i++) {
			System.out.println("请输入第"+(i+1)+"个数:");
			nums[i]=sc.nextInt();
		}
		//再复制一个一摸一样的数组备用
		int[] nums1=Arrays.copyOf(nums, 10);

4、冒泡法排序

数组准备好后就可以对数组中的元素进行处理,冒泡排序方法是指相邻的两个数进行比较,将大的数据放在前面,小的数据放在后面;实现代码如下:

//使用冒泡法对数组进行排序
System.out.println("冒泡法:");
//冒泡法:相邻的两个数进行比较,大的放前面,小的放后面
for(int i=0;i<nums.length;i++){
    for(int j=0;j<nums.length-i-1;j++){
	    if(nums[j]<nums[j+1]){
		    int temp=nums[j];
			nums[j]=nums[j+1];
			nums[j+1]=temp;
            }
		}
	}

 5、选择法排序

将之前复制好留着备用的数组拿来做选择排序,选择排序法是每个数都和后面的数比较一次,最大的放最前面。实现代码如下:

for (int i = 0; i < nums1.length; i++) {
    for (int j = i + 1; j < nums1.length; j++) {
        if (nums1[i] < nums1[j]) {
            int temp = nums1[i];
			nums1[i] = nums1[j];
			nums1[j] = temp;
        }
    }
}

 6、输出排序好的的数组

最后使用Arrays中的toString方法将两个排序好的数组输出。实现代码如下:

System.out.println(Arrays.toString(nums));
System.out.println(Arrays.toString(nums1));

下面是完整代码:

import java.util.Arrays;
import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		/*
		 * 有10个数字要求分别用选择法和冒泡法从大到小输出
		 */
		Scanner sc = new Scanner(System.in);
		// 定义一个长度为10的一维数组
		int[] nums = new int[10];
		// 键盘输入十个数存储在数组中
		for (int i = 0; i < nums.length; i++) {
			System.out.println("请输入第" + (i + 1) + "个数:");
			nums[i] = sc.nextInt();
		}
		// 再复制一个一摸一样的数组备用
		int[] nums1 = Arrays.copyOf(nums, 10);
		System.out.println("你输入的数组为:" + Arrays.toString(nums));
		// 使用冒泡法对数组进行排序
		System.out.println("冒泡法:");
		// 冒泡法:相邻的两个数进行比较,大的放前面,小的放后面
		for (int i = 0; i < nums.length; i++) {
			for (int j = 0; j < nums.length - i - 1; j++) {
				if (nums[j] < nums[j + 1]) {
					int temp = nums[j];
					nums[j] = nums[j + 1];
					nums[j + 1] = temp;
				}
			}
		}
		System.out.println(Arrays.toString(nums));
		System.out.println("选择法:");
		// 选择法:每个数都和后面的数比较一次,最大的放前面
		for (int i = 0; i < nums1.length; i++) {
			for (int j = i + 1; j < nums1.length; j++) {
				if (nums1[i] < nums1[j]) {
					int temp = nums1[i];
					nums1[i] = nums1[j];
					nums1[j] = temp;
				}
			}

			System.out.println(Arrays.toString(nums1));
		}
	}
}

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月22日
下一篇 2023年12月22日

相关推荐