1、需求分析:

  在校大四学生,因为疫情原因集体推迟开学,我正好是班委,需要每天上课需要统计人数,总有一两个人不按时进入网课堂,又由于进入课堂时间有所不同每个人,即使同学们昵称改成了学号加姓名,仍然不能按学号顺序排序。

2、问提描述:

  有N个数字,需要进行大小排序。

3、编写代码:

public class Test {public static void main(String[] args) {int [] array = {7,22,38,55,35};int temp;for (int i = 0; i < array.length; i++) {for (int j = i+1; j < array.length; j++) {if (array[i] < array[j]) {temp = array[i];array[i] = array[j];array[j] = temp; // 两个数交换位置}}}for (int i = 0; i < array.length; i++) {System.out.print(array[i]+" ");}}
}

此时我只需将在课堂的同学的学号后两位,输入到 int [] array 数组里面即可快速找到没有进入课堂的同学。

好比按有20人,当有这些学号的同学(2,3,5,1,8,4,11,20,15,17,16,14,6)进入课堂时,运行结果如下:

此时,我便可以清晰的看到有18,19,13,12,10,9,7 同学没有到课堂。

4、代码优化:

需求分析:

  虽然上面代码已经可以实现,但是我这种喜欢小黑框的爱好者,不希望直接定义个死数组,我希望通过键盘输入与电脑交互式完成需求。

代码如下:

import java.util.Scanner;
public class Test1 {public static void main(String[]  args){int x;System.out.println("请输入n个需要排序的数:(请以 ,隔开)");Scanner input=new Scanner(System.in);String  a = input.nextLine();String [] p = a.split(",");int []arr=new int[p.length];for(int i=0;i<p.length;i++) {arr[i]=Integer.parseInt(p[i]);}//原序列为System.out.println("原序列为:");for(int i=0;i<arr.length;i++) {System.out.printf("%4d",arr[i]);}System.out.printf("\n");for(int i=1;i<=arr.length;i++) {for(int j=0;j<arr.length-1;j++) {if(arr[j]>arr[j+1]) {x=arr[j+1];arr[j+1]=arr[j];arr[j]=x;}}}//排序后序列System.out.println("排序后序列为:");for(int i=0;i<arr.length;i++) {System.out.printf("%4d",arr[i]);}}
}

  以上就是 java 在键盘输入n个数进行排序输出的全部内容,主要还是 java 基础内容,for循环内容等。

5、补充

1、排序是什么?

  排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。

  学习网站推荐:https://visualgo.net/zh

2、八大排序算法是:
  1、直接插入排序;2、希尔排序;3、简单选择排序;4、堆排序;5、冒泡排序;6、快速排序;7、归并排序;8、桶排序/基数排序。

  • 冒泡排序:时间复杂度O(n^2) 空间复杂度O(1)稳定

  • 归并排序:时间复杂度O(nlogn) 空间复杂度O(nlogn) 稳定

  • 快速排序:时间复杂度O(nlogn) 空间复杂度O(logn) 不稳定

  • 桶排序: 时间复杂度O(n) 空间复杂度O(n) 稳定

  • 简单选择排序:时间复杂度 O(n^2) 空间复杂度O(1)不稳定

  • 直接插入排序:时间复杂度O(n^2) 空间复杂度O(1) 稳定的

  • 希尔排序:时间复杂度O(n^1.3~1.5) 空间复杂度O(1) 不稳定

  • 堆排序:时间复杂度O(nlogn) 空间复杂度O(1) 不稳定

3、示例

冒泡排序:

#include <stdio.h>
#define SIZE 8void bubble_sort(int a[], int n)
{int i, j, temp;for (j = 0;j < n - 1;j++)for (i = 0;i < n - 1 - j;i++){if(a[i] > a[i + 1]){temp = a[i];a[i] = a[i + 1];a[i + 1] = temp;}}
}int main()
{int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};int i;bubble_sort(number, SIZE);for (i = 0; i < SIZE; i++){printf("%d", number[i]);}printf("\n");
}

Java 键盘输入n个数进行排序输出相关推荐

  1. c语言输入10个数从小,C语言中,从键盘输入10个数,从小到大排列输出,怎

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:C语言中,从键盘输入10个数,从小到大排列输出,怎么写啊,最好注回答:#includestdio.h void swap(int * ...

  2. java键盘输入一个数_Java如何实现从键盘输入一个数?

    展开全部 1.导util包 2.用Scanner的静态方法接收2次数据 3.判断,打印32313133353236313431303231363533e59b9ee7ad943133336338343 ...

  3. python从键盘输入一个数n、输出大于n且不能整除3_python基础练习题

    1.求100(含100)以内所有偶数的和 range(start,end,step)这个序列生成器,和那个切片的语法一样,含头不含尾,step是步长,这里就不需要在对j进行判断了,对于这些简单求奇数和 ...

  4. java switch语句练习 从键盘输入2个数和一个运算符(+,-,*,/),输出运算结果

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  5. java从键盘输入一个数,并将其倒序输出

    从键盘输入一个数,并将其倒序输出 import java.util.Scanner;/*** 从键盘上录入任意整数,倒叙输出*/ public class Test06 {public static ...

  6. java数组元素的输入_java基础--键盘输入一个数,输出数组中指定元素

    java基础--键盘输入一个数,输出数组中指定元素 java基础--键盘输入一个数,输出数组中指定元素 package com.lcn.day05; import java.util.Scanner; ...

  7. java三个数排序从小到大,键盘输入三个数,实现从小到大排序,键盘输入从小到大...

    键盘输入三个数,实现从小到大排序,键盘输入从小到大 // 导包 import java.util.Scanner; public class Sort { public static void mai ...

  8. 5个元素排序java,运用java语言,从键盘输入五个数,给这5个数从小到大排列

    运用java语言,从键盘输入五个数,给这5个数从小到大排列 mip版  关注:99  答案:1  悬赏:40 解决时间 2021-01-23 14:56 已解决 2021-01-23 02:02 运用 ...

  9. 从键盘输入三个数并从大到小排序输出

    输入三个数并从大到小排序输出 从键盘输入三个数,a, b, c,之后比较他们的大小并交换位置在a内放最大值在b内放中间值,在c内放最小值,并按照abc的顺序输出 . void main() {int ...

最新文章

  1. Linux 环境下NFS 服务搭建
  2. Flink Pre-defined Timestamp Extractors / Watermark Emitters(预定义的时间戳提取/水位线发射器)...
  3. 成功解决A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,co
  4. Python实训day11pm【大作业简略解析】
  5. Selection change event Issue is fixed handleListItemPress,SingleSelectMaster
  6. mysql as用法_Spring Data R2DBC响应式操作MySQL
  7. Meeters and Greeters 接客大厅
  8. Java 网络实例二(查看主机指定文件的最后修改时间、Socket实现多线程服务器程序、Socket连接到指定主机、网页抓取)
  9. java 动态加载ztree_JAVAEE——BOS物流项目02:学习计划、动态添加选项卡、ztree、项目底层代码构建...
  10. Codeforces Round #352 (Div. 1) B. Robin Hood
  11. php 获取array keys,php数组函数序列之
  12. 银灿IS916也可以量产三驱三启动成功教程
  13. 从认知动机理论看设计:如何读懂用户?
  14. linux rpm -qa|grep -i mysql_【LINUX】linux中rpm是什么意思
  15. 职业规划-三大职业生涯阶段
  16. Win10下载nmap!!!!(超详细,学不会直接远程指导)
  17. JavaScript实现更换背景图片
  18. 股票 市盈率(PE)
  19. 计算机上的aece代表什么意思,Myristicaceae是什么意思
  20. 在windows系统使用Gazebo9的小问题

热门文章

  1. C语言实例练习(上)
  2. is_numeric() 函数
  3. SpringBoot在线考试系统
  4. snprintf与_snprintf区别
  5. dbeaver链接localDB
  6. 服务器怎么防勒索病毒
  7. 简介键盘上各种符号代表的意思
  8. MATLAB车牌识别技术实现
  9. 金融学习之十六——资本市场线
  10. 东软实训项目个人总结