Java利用选择排序和冒泡排序实现对键盘录入的数据排序

选择排序


选择排序是遍历元素找到最大(最小)的元素,放到第一个位置然后到剩余的元素里找到第二大(小)的元素放到第二个,因此类推,就可以得到一个排好序的数组;

  • 使用索引为0的元素依次和后面索引对应的元素进行比较,将较大(小)的值放到前面,第一次比较完毕最大(小)值就在索引为0的位置;

  • 第一次比较是从0索引开始,一直与后面的进行比较,直到比较到最后一个索引;

  • 第二次是从1索引开始,遇到小的互换位置,然后继续比较;

  • 直到最后一个索引;

需求:键盘录入一个数组(5个不同的整数)通过选择排序将数组进行排序并打印

代码实现:

public class ChooseTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int[] arr = new int[5];for(int i = 0; i <5; i++){System.out.println("输入第"+(i+1)+"个数字:");arr[i] = sc.nextInt();}System.out.println("排序前:");printArray(arr);chooseShot(arr);System.out.println("排序后:");printArray(arr);}//选择排序private static void chooseShot(int[] arr) {for(int i = 0; i < arr.length-1; i++){for(int j = i +1; j < arr.length; j++){if(arr[j] < arr[i]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}}//遍历数组private static void printArray(int[] arr) {System.out.print("[");for(int i = 0; i < arr.length; i++){if(i == arr.length-1){System.out.println(arr[i] + "]");}else{System.out.print(arr[i] + "\t");}}}
}

冒泡排序


冒泡排序比较的是相邻的元素,如果第一个数比第二个数大(小),就交换两个元素,没个相邻元素都这么比,直到比较最后一对,此时最后的数应该是最大(小)的;对所有元素重复此操作,就可以得出一个递增(递减)的数组;

0索引和1索引比较,如果0索引大于1索引的值,交换位置否则位置不变

1索引和2索引比较,方法类似

需求:键盘录入一个数组(5个不同的整数)通过冒泡排序将数组进行排序并打印

代码实现:

public class BubbleTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int[] arr = new int[5];for(int i = 0; i < 5; i++){System.out.println("输入第"+(i+1)+"个数字:");arr[i] = sc.nextInt();}System.out.println("排序前:");printArray(arr);BubbleShot(arr);System.out.println("排序后:");printArray(arr);}//冒泡排序private static void BubbleShot(int[] arr) {for(int i = 0; i < arr.length-1; i++){for(int j = 0; j < arr.length-1-i; j++){if(arr[j] > arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}//遍历数组private static void printArray(int[] arr) {System.out.print("[");for(int i = 0; i < arr.length; i++){if(i == arr.length-1){System.out.println(arr[i] + "]");}else{System.out.print(arr[i] + "\t");}}}
}

Java利用选择排序和冒泡排序实现对键盘录入的数据排序相关推荐

  1. java基础知识点(4)——运算符与键盘录入

    运算符与键盘录入 文章目录 运算符与键盘录入 运算符 一.运算符分类 1.算数运算符 2.赋值运算符 3.比较运算符 4.逻辑运算符 5.位移运算符 6.三元运算符 7.自增自减运算符 二.键盘录入 ...

  2. JAVA——实现循环录入学员Java课程的成绩(学员数量由键盘录入),统计分数大于等于80分的学生的比例。

    题目:循环录入学员Java课程的成绩(学员数量由键盘录入),统计分数大于等于80分的学生的比例. 代码如下: public class Test6 {public static void main(S ...

  3. 选择排序、冒泡排序、插入排序、快速排序、希尔排序、归并排序、堆排序和希尔排序的java实现比较

    几种排序实现代码 package com.delicacy.oatmeal.test.suanfa.sort;import java.util.Arrays; import java.util.Ran ...

  4. 排序计算机教案,八年级信息技术教案:数据排序

    ID:9746520 分类: 全国 , 2019 资源大小:19KB 资料简介: 四.数据排序 课时计划 课  题 四.数据排序 时间 教学目的 1.掌握数据的排序方法. 2.加强与数学学科的学科整合 ...

  5. 如何使用计算机对表数据排序,在Word中怎样给表格的数据排序

    我们在使用Word制作和编辑表格时,有时需要对表格中的数据进行排序,下面学习啦小编给大家分享Word中表格排序的方法,欢迎阅读: 什么是排序? 排序是计算机内经常进行的一种操作,其目的是将一组&quo ...

  6. python列表数据排序_Python中,如何将列表中数据排序给列表排序?

    在程序中使用字典进行数据信息統计时由于字典是无序的所以打印字典时内容也是无序的.因此为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排序和按&quo ...

  7. Java利用stream(流)对map中的values进行过滤、排序操作

    前言 对于Java8中的stream(流)这种优雅.方便.快捷.高效的操作已经是信手沾来了吧,但是却仅限List.Set.难道我Map不要面子得嘛?在工作中需要对从List转Map的数据进行操作,因此 ...

  8. 用java实现动态排序_关于Java动态分组排序的问题(Android中需要将数据排序给RecyclerView使用)...

    问题描述 现在有这样一个TestNotification里面定义了这些字段 private long time; private String pkg; private String content; ...

  9. 各种排序算法以及扩展(选择排序,冒泡排序,插入排序,归并排序,最小和问题,堆排序,荷兰国旗问题,快速排序)

    文章目录 基础算法一二课 选择排序 冒泡排序 插入排序 判断数据是否在数组中 找满足>=value的最左位置 ^ 异或符号的多用 一.进行交换 二.数组中有一种数出现了奇数次,其他数都出现了偶数 ...

最新文章

  1. 对没有标记为安全的activex控件进行初始化和脚本运行_新的C++安全编码规则出炉...
  2. 矩形脉冲信号的频域分析_矩形周期脉冲信号MATLAB实现
  3. db2 如何导出insert语句_MySQL 执行脚本/导入/导出数据
  4. [蓝桥杯][算法提高VIP]线段和点(排序+贪心)
  5. junit junit_穿越JUnit流
  6. 【Linux内核】内存映射原理
  7. Python利用turtle绘制五角星
  8. opencv android jni,OpenCV - AndroidStudio的JNI工程及引用OpenCV
  9. 磁盘文件的正常读写与异步读写
  10. fabric 启动peer_Hyperledger Fabric Peer 常用命令总结
  11. 工具类TestTools
  12. 5类6类7类网线对比_五类网线、六类网线和七类网线有什么区别?如何挑选网线?...
  13. http://cdn.ac.nbutoj.com/Problem/view.xhtml?id=1184Elaine's Queue
  14. linux使用iptables屏蔽ip段,利用iptables屏蔽IP段
  15. stellarium
  16. NetBIOS编程获取本机MAC地址及一个小坑
  17. 判断浏览器必须是IE10以上,低于IE10做出提示
  18. Spring Boot入门(24):Spring Boot事务 | 超级详细,建议收藏
  19. 【高等数学如何学,做题方法,期末突击】
  20. 薄膜检测有哪些工艺流程,快来做功课

热门文章

  1. Zookeeper学习笔记
  2. php设计是什么意思,php的设计模式是什么意思-php教程
  3. Eclipse3.4.0的安装及用来进行C++编程
  4. 大数据是如何“暴露”你的隐私
  5. 分子动力学模拟学习——VMD安装
  6. Aspose.PDF for Java 21.6 Crack
  7. php音乐链接,用PHP获取虾米音乐网的下载链接_php
  8. Python +Echarts +PyQt5设计股票期货自动交易系统 二、软件界面响应(二)
  9. GUI Guider设计UI界面移植到STM32
  10. 优雅解析民族代码java_那些高端、优雅的注解是怎么实现的4 -- 使用Annotaion Processing Tool 解析注解...