选择法排序和冒泡法排序

2023-05-16

一、思路

1. 选择法排序

    1. 把第一位和其他所有位比较,只要比第一位小的,就换到第一个位置来,比较数组长度-1次后,第一位就是最小的
            2. 再从第二位和剩余的其他所有位进行比较,只要比第二位小,就换到第二个位置来,比较完后,第二位就是第二小的
            3. 以此类推

2. 冒泡法排序

    1. 从第一位开始,把相邻两位进行比较,如果前面的比后面的大,就把大的数据交换在后面,比较数组长度-1次后,最后一位就是最大的
            2. 重复步骤1,但不用比较最后一位,相当于对除去最后一位的其它数的数组做冒泡排序
            3. 以此类推


二、程序

public class Test {
	public static void main(String[] args) {		
        int[] a = new int[]{18,85,46,62,9,37};
      //排序前先把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");	//换行
        /* 选择法排序
         * 	1. 把第一位和其他所有位比较,只要比第一位小的,就换到第一个位置来,比较数组长度-1次后,第一位就是最小的
			2. 再从第二位和剩余的其他所有位进行比较,只要比第二位小,就换到第二个位置来,比较完后,第二位就是第二小的
			3. 以此类推
         */
      //最后一位不需要和其它位比较,所以外部循环到数组长度-1
        for (int j = 0; j < a.length-1; j++) {
        	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 (int i = 0; i < a.length; i++) {
        	System.out.print(a[i] + " ");
		}
        
        System.out.println(" ");	//换行
        
        /*冒泡法排序
         *	1. 从第一位开始,把相邻两位进行比较,如果前面的比后面的大,就把大的数据交换在后面,比较数组长度-1次后,最后一位就是最大的
 			2. 重复步骤1,但不用比较最后一位,相当于对除去最后一位的其它数的数组做冒泡排序
			3. 以此类推
         */
        for (int j = 0; j < a.length; j++) {
        	//外部第一次循环,内部循环需比较数组长度-1次,将最大位排到最后一位,外部第二次循环,内部循环需比较(原数组长度-1)-1次
        	 for (int i = 0; i < a.length-j-1; i++) {
        		 if(a[i] < a[i+1]) {
     				int temp = a[i+1];
     				a[i+1] = a[i];
     				a[i] = temp;
     			}
     		}
		}
        for (int i = 0; i < a.length; i++) {
        	System.out.print(a[i] + " ");
		}
	}	
}

三、结果

四、参考文章

1. https://how2j.cn/k/array/array-sort/282.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择法排序和冒泡法排序 的相关文章

随机推荐

  • 阿里云服务器试用1个月到期了怎么办?

    阿里云新账号提供云服务器免费试用1个月 xff0c 试用1个月到期了怎么办 xff1f 试用的云服务器是按量付费模式的 xff0c 通过节省计划按0 99元 小时额度抵扣 xff0c 如果到期不想用了直接释放掉即可 xff0c 如果到期后想
  • vue中使用websocket通信接收后台数据

    前言 xff1a 项目中因为有的数据使用分页后数据加载还是很慢 xff0c 所以考虑使用websocket来解决 后端获取到数据库数据后就依次返回给前端 xff0c 这样就不需要等分页数据全部获取后才返回 websocket封装请看我的另一
  • Windows睡眠或者休眠后无法唤醒问题的解决方案

    Windows睡眠或者休眠后无法唤醒问题的解决方案 最近遇到问题 xff0c 电脑长时间不使用后会进入睡眠或者休眠状态 xff0c 然后屏幕是全黑的 但是想当我再次使用时 xff0c 无论敲击键盘或者点击鼠标都无法唤醒电脑 xff0c 一直
  • Windows右键新建文件类型配置及其模板设置

    文章目录 添加新建 md文件设置新建 md文件模板 默认的情况下 xff0c Windows右键中是没有新建 md文件的 xff0c 每次我们要使用Typora写文章时都需要打开Typora软件再保存到其他目录 xff0c 并且在编写自己的
  • HJ5-进制转换

    HJ5 进制转换 描述 写出一个程序 xff0c 接受一个十六进制的数 xff0c 输出该数值的十进制表示 数据范围 xff1a 保证结果在 1 n 2 31 1 输入描述 xff1a 输入一个十六进制的数值字符串 输出描述 xff1a 输
  • 【Anaconda】修改conda默认envs_dirs和pkgs_dirs

    文章目录 方法一 修改 condarc 文件 xff08 推荐 xff09 xff08 1 xff09 打开 C Users 用户 username condarc 文件 xff08 2 xff09 添加以下内容 xff08 3 xff09
  • 【ICMP】Ping的本质_ICMP

    1 Ping的本质 ping 是一种计算机网络工具 xff0c 用来测试数据包能否透过 IP 协议到达特定主机 ping 的运作原理是向目标主机传出一个 ICMP Echo Request 数据包 并 等待接收回应数据包 xff0c 来检测
  • Django2.2丨模型

    模型 模型准确且唯一的描述了数据 它包含存储的数据的重要字段和行为 一般来说 xff0c 每一个模型都映射一张数据库表 基础 xff1a 每个模型都是一个Python的类 xff0c 继承django db models Model 模型类
  • CIKM-2021 Multi-Factors Aware Dual-Attentional Knowledge Tracing

    前言 首先说一下自己读这篇文章的感受 xff0c 通过读文章题目 xff0c 我们可以得知 这篇文章的主要创新点就在于multi factors和dual attention 文章的思路也很清晰 xff0c 首先就是介绍多factor是哪些
  • GIKT:A Graph-based Interaction Model for Knowledge Tracing

    论文地址 xff1a 2009 05991 GIKT A Graph based Interaction Model for Knowledge Tracing arxiv org 代码地址 xff1a ApexEDM GIKT GIKT
  • Knowledge structure enhanced graph representation learning model for attentive knowledge tracing

    前言 这篇是一篇期刊论文 xff0c 篇幅较长 xff0c 且代码不公开 作者所发表的期刊很好 xff0c 是SCI一区的文章 xff0c 因此可靠性很强 这篇文章像是我上周分享的一篇文章GIKT的改进 xff0c 改进点主要有两点 xff
  • Docker学习之路(三)Docker网络详解

    1 Docker的4种网络模式 我们在使用docker run创建Docker容器时 xff0c 可以用 net选项指定容器的网络模式 xff0c Docker有以下4种网络模式 xff1a host模式 xff0c 使用 net 61 h
  • 知识追踪模型——教育大数据挖掘

    知识追踪模型 教育大数据挖掘 知识追踪的本质是根据学生的历史学习记录来推测任意时刻学生对于知识点的掌握程度 xff0c 进而预测学生的未来成绩 xff0c 也可以辅助教师布置教学计划等 现有的知识追踪模型大致可以分为3类 xff1a 基于概
  • VTK:纹理映射体绘制——三维纹理映射

    1 三维纹理映射 利用三维纹理映射 xff0c 将体数据映射至一组与视图平面平行的多边形 xff0c 避免了二维纹理映射方法中因为纹理映射的切换造成的瑕疵 VTK中三维纹理映射体绘制方法由vtkVolumeTexture3D类实现 xff0
  • Python环境下载与安装教程

    第一步 Python进入官网 Welcome to Python org https www python org 第二步 xff1a 点击Downloads xff08 下载 xff09 选择你需要下载的版本 这里选择的版本是Python
  • Mybatis-Puls整合pagehelper依赖冲突

    lt dependency gt lt groupId gt com github pagehelper lt groupId gt lt artifactId gt pagehelper lt artifactId gt lt versi
  • 用Python绘制一天之内的气温变化图

    假设一天中每隔两个小时的气温分别是 15 13 14 5 17 20 25 26 26 27 22 18 15 xff0c 请用Python绘制折线图来表示这一变化过程 代码和结果如下 xff1a from matplotlib impor
  • 全国大学生智能汽车竞赛——讯飞智慧餐厅组导入赛道模型,对readme的完善总结

    讯飞智慧餐厅的线上赛任务是要用gazebo仿真软件控制小车运动 xff0c 但导入赛道这一步对于初学者来说有点困难 xff0c 作为指导操作readme文件讲解又太过于简单 xff0c 愚笨的我花了好长时间才成功导入 为了帮助还未安装的小伙
  • 编写一个C语言程序,将大写字母变成小写字母

    编写一个C语言程序 xff0c 将大写字母变成小写字母 include lt stdio h gt int main int i 61 1 char c1 c2 c1 61 A while i lt 27 c2 61 c1 43 32 pr
  • 选择法排序和冒泡法排序

    一 思路 1 选择法排序 1 把第一位和其他所有位比较 xff0c 只要比第一位小的 xff0c 就换到第一个位置来 xff0c 比较数组长度 1次后 xff0c 第一位就是最小的 2 再从第二位和剩余的其他所有位进行比较 xff0c 只要