排序算法之冒泡排序

news/2024/4/30 12:03:04

1 算法描述

  1. 首先在未排序数组的首位开始,和后面相邻的数字进行比较,如果前面一个比后面一个大那么则进行交换。
  2. 接下来在将第二个位置的数字和后面相邻的数字进行比较,如果大那么则进行交换,直到将最大的数字交换的数组的尾部。
  3. 然后再从排序的数组的首位开始,重复前面两部将最大的数字交换到未排序数组的尾部(交换到尾部的数字是已经拍好序的)。
  4. 如此反复,直到排序完毕。

2 算法实现

分解1:将第一个数字和后面相邻的数字进行比较,如果大则进行交换

        int[] arrs = {8, 6, 12, 7, 2, 5, 4, 1, 9};//判断大小if(arrs[0]>arrs[1]) {//如果大,则进行交换int temp = arrs[0];arrs[0] = arrs[1];arrs[1] = temp;}//输出结果for (int i = 0; i < arrs.length; i++) {System.out.print(arrs[i]+",");}

分解2:通过比较交换,将最大的数字交换到数组的尾部

        int[] arrs = { 8, 6, 12, 7, 2, 5, 4, 1, 9 };for (int i = 0; i < arrs.length - 1; i++) {// 判断大小if (arrs[i] > arrs[i + 1]) {// 如果大,则进行交换int temp = arrs[i];arrs[i] = arrs[i + 1];arrs[i + 1] = temp;}}// 输出结果for (int i = 0; i < arrs.length; i++) {System.out.print(arrs[i] + ",");}

分解3:重复执行分解1和分解2,将最大的数字交换到 未排序数组的尾部,直到排序完成

int[] arrs = { 8, 6, 1, 7, 2, 5, 4, 12, 9 };// 第一个轮交换,将数组中最大的数字交换到数组最后for (int i = 0; i < arrs.length - 1; i++) {// 判断大小if (arrs[i] > arrs[i + 1]) {// 如果大,则进行交换int temp = arrs[i];arrs[i] = arrs[i + 1];arrs[i + 1] = temp;}}//第二个轮交换,将数组中最大的数字交换到数组倒数第二位置for (int i = 0; i < arrs.length - 2; i++) {//分解1和分解2的代码}// 第二个轮交换,将数组中最大的数字交换到数组倒数第三位置for (int i = 0; i < arrs.length - 3; i++) {//分解1和分解2的代码}// 输出结果for (int i = 0; i < arrs.length; i++) {

分解4:利用循环代替重复的操作

int[] arrs = { 8, 6, 1, 7, 2, 5, 4, 12, 9 };for (int j = 1; j < arrs.length; j++) {// 第一个轮交换,将数组中最大的数字交换到数组最后for (int i = 0; i < arrs.length - j; i++) {// 判断大小if (arrs[i] > arrs[i + 1]) {// 如果大,则进行交换int temp = arrs[i];arrs[i] = arrs[i + 1];arrs[i + 1] = temp;}}}// 输出结果for (int i = 0; i < arrs.length; i++) {System.out.print(arrs[i] + ",");}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11247.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

数据结构面试常见问题

什么是数据结构&#xff1f; 数据结构是组织数据的一种方式&#xff0c;以便可以有效地使用数据。不同类型的数据结构适用于不同类型的应用程序&#xff0c;有些则高度专业化&#xff0c;适用于特定任务。例如&#xff0c;B 树特别适合数据库的实现&#xff0c;而编译器实现通…

推荐几个python的工具

Beautiful Soup Beautiful Soup用于清理和提取HTML和XLM中的数据。 它用于解析HTML文本&#xff0c;并允许数据科学家将文本数据转换为结构化数据&#xff0c;只需几行代码&#xff0c;就可以提取复杂的HTML数据。在某些情况下&#xff0c;您只需要一个表标签&#xff0c;并且…

ios ipa包上传需要什么工具

目录 ios ipa包上传需要什么工具 前言 一、IPA包的原理 二、IPA包上传的步骤 1.注册开发者账号 2.apk软件制作工具创建应用程序 3.构建应用程序 4.生成证书和配置文件 5.打包IPA包 6.上传IPA包 三、总结 前言 iOS IPA包是iOS应用程序的安装包&#xff0c;可以通过iT…

查询优化-提升子查询-UNION类型

瀚高数据库 目录 文档用途 详细信息 文档用途 剖析UNION类型子查询提升的条件和过程 详细信息 注&#xff1a;图片较大&#xff0c;可在浏览器新标签页打开。 SQL: SELECT * FROM score sc, LATERAL(SELECT * FROM student WHERE sno 1 UNION ALL SELECT * FROM student…

基于Weibull、Beta、Normal分布的风、光、负荷场景生成及K-means场景削减方法

目录 一、主要内容&#xff1a; 二、代码运行效果&#xff1a; 三、Weibull分布与风机风速&#xff1a; 四、Beta分布与光伏辐照度&#xff1a; 五、Normal分布与电负荷&#xff1a; 六、K-means聚类算法&#xff1a; 七、完整代码数据下载&#xff1a; 一、主要内容&am…

idea创建javaweb项目步骤超详细(2022最新版本)

目录 前言必读 一、新建文件 1.在idea里面点击文件-新建-项目 2.新建项目-更改名称为自己想要的项目名称-创建 3.右键自己建立的项目-添加框架支持&#xff08;英文版是Add Framework Support...&#xff09; 4.勾选Web应用程序-确定 5.建立成功界面 二、配置tomcat 6.…