赞
踩
目录
- public static void main(String[] args) {
-
- //1、定义一个静态初始化的数组,存出一批数据
- int[] array = {13,24,42,1,4,99,45};
-
- //2、定义一个变量用于存储最大值元素,建议使用数组中的第一个元素作为参考
- int max = array[0];
-
- //遍历数组
- for (int i = 0; i < array.length; i++) {
- if(max < array[i]){
- max = array[i];
- }
- }
- //输出最大值
- System.out.println("数组的最大值为:" + max);
-
- }

需求
- public static void main(String[] args) {
-
- //1,定义一个动态初始化的数组存储5个随机的1-20之间的数
- int[] data = new int[5];
- //2、动态的生成5个随机数并存储在数组中
- Random r = new Random();
- for (int i = 0; i < data.length; i++) {
- data[i] = r.nextInt(20) + 1;
- }
- //3、使用一个死循环让用户猜测
- Scanner sc = new Scanner(System.in);
- OUT:
- while(true){
- System.out.println("请输入一个1-20之间的数:");
- int guessData = sc.nextInt();
-
- //4、遍历数组中的每个数据,看是否有数据与猜测的数据相同,相同代表猜中了,给出提示
- for (int i = 0; i < data.length; i++) {
- if(guessData == data[i]) {
- System.out.println("猜中了,该数据在数组中第一次出现的索引为:" + i);
- break OUT;
- }
- }
- System.out.println("当前猜测的数据在数组中不存在,请重新猜测!");
- }
- //5、输出数组的全部元素,让用户看到自己确实是猜中了某个数据
- for (int i = 0; i < data.length; i++) {
- System.out.print(data[i] + "\t");
- }
-
- }

需求
某公司开发部5名开发人员,要进行项目进展汇报演讲,现在采取随机排名后进行汇报。
请先依次录入5名员工的工号,然后展示出一组随机的排名顺序。
分析
①定义一个动态初始化的数组用于录入数据。
②遍历数组中的每个元素,每次随机一个索引值,让当前元素与该索引位置处的元素进行交换。
③遍历输出数组中的内容即可。
- public static void main(String[] args) {
- //目标:键盘录入一组工号,最终要随机输出一组出来作为排名
- //1、动态初始化一个数组,存储5个工号
- int[] codes = new int[5];
-
- //2、定义一个循环,依次录入一个工号存入对应的位置
- Scanner sc = new Scanner(System.in);
- for (int i = 0; i < codes.length; i++) {
- //从键盘录入工号
- System.out.println("请您输入第" + (i + 1) + "个工号:");
- int code = sc.nextInt();
- //存到数组中去
- codes[i] = code;
- }
-
- //3、遍历数组中的每个元素,然后随机一个索引,让该元素与随机索引处的元素值进行交换
- Random r = new Random();
- for (int i = 0; i < codes.length; i++) {
- int index = r.nextInt(codes.length);
- int temp = codes[index];
- codes[index] = codes[i];
- codes[i] = temp;
- }
-
- //4、输出随机排名后的数组
- for (int i = 0; i < codes.length; i++) {
- System.out.print(codes[i] + "\t");
- }
-
- }

冒泡排序思想:每次从数组中找出最大值放到数组后面去 (升序)
(从头开始两两比较,把较大的元素与较小的元素进行交换,,每轮把当前最大的一个元素存入到数组当前的末尾。)
举例:n个数排序
第一轮:第1个数和后面n-1个数比较
第二轮:第2个数和后面n-2个数比较
······
第n-1轮:第n-1个数和后面第n个数比较
int[] arr = {5,2,3,1};
代码:
- //冒泡排序实现从小到大排序
- public static void main(String[] args) {
- //1、定义一个数组,存储一些数据
- int[] arr = {5,2,3,1};
- //定义一个循环控制比较的轮数
- for (int i = 0; i < arr.length -1; i++) {
- for(int j = 0; j < arr.length -i -1; j++){
- //判断若前一个位置的元素大于后一个位置的元素,则交换
- if(arr[j] > arr[j + 1]){
- int temp = arr[j + 1];
- arr[j + 1] = arr[j];
- arr[j] = temp;
- }
- }
- }
- for (int i = 0; i < arr.length; i++) {
- System.out.print(arr[i] + "\t");
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。