Java之冒泡排序

 * 编辑者:鸿灬嗳
* 实现功能: 使用冒泡排序对数组:{25,24,12,76,101,96,28} 排序。
*/
package test05; public class BubbleSort {
public static void main(String[] args) {
int[] arr = { 25, 24, 12, 76, 101, 96, 28 };
System.out.println("冒泡排序前数组为:");
printArray(arr);
Bubble(arr);
} public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
} public static void Bubble(int[] arr) {
for (int i = 0,count=0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
} }
count++;
System.out.println("第"+count+"次冒泡排序:");
printArray(arr);
}
}
}

运行结果:

冒泡排序难点:

创建排序方法时需要定义外层和内层循环函数

外层循环:遍历的长度为小于arr.length-1,而不是arr.length,原因:外层函数d的循环变量是用来控制多少轮比较,每一轮比较可以确定一个元素的位置,有因为比较是两个数之间,自身不要自身比较,所以需要减去1。

内层循环:遍历的长度为小于arr.length-i-1而不是arr.length*,

原因:内层函数是用来控制每轮比较的的次数他被作为角标去比较数组的元素,由于变量在循环过程中是自加的,这样既可以实现所有相邻元素之间的必较,在程序中我定义的是升序交换,所以一轮内循环结束后最大的元素会交换到最后一个,每轮内循环结束都会确定一个元素的位置,如果内循环次数再用length-1的话,就多比较了,造成资源浪费,所以要减去外部循环的已经遍历的值,也就是代码中的i值。


编写使用的软件:eclipse,Java环境:Java SE Development Kit 8u201

注意:新手编写请多多关注按照,本代码的bubble方法的外层函数遍历了6边,可以进行优化,本次未优化(图片未拍全),下次将发出优化后的代码。

Java之冒泡排序(升序)的更多相关文章

  1. Java版冒泡排序和选择排序

    一.理解说明 1.理解和记忆 冒泡排序:依次定位数组元素,每次只和相邻的且符合条件的元素交换位置. 选择排序:依次在数组的每个位置,通过逐个对比选择出最大或最小的元素. 2.知识点说明 (1)数组是引 ...

  2. java 数组冒泡排序、转置(降序)

    1.java 数组冒泡排序 排序的基本原理(升序): 原始数据:  2 .1 .9 .0 .5 .3 .7 .6 .8: 第一次排序: 1  .2 .0 .5 .3 .7 .6 .8 .9 : 第二次 ...

  3. Java中常见的排序方式-冒泡排序(升序)

    [基本思想] 假设数组为int[] a = { 49, 38, 65, 97, 76, 13, 27 },数组元素个数为7个. 第1轮比较:先是a[0]与a[1]比较,大于则先交换,再比较a[1]和a ...

  4. java:冒泡排序、选择排序、插入排序实现

    整数排序 给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法. 样例 样例 1: 输入: [3, 2, 1, 4, 5] 输出: [1, 2, 3, 4, 5] ...

  5. Java实现冒泡排序

    冒泡排序思想就是将数列的相邻两个数比较,较大的数往后保存,小的数往前. package Sort; import java.util.Arrays; public class BubbleSort { ...

  6. java基础 - 冒泡排序,随机数算法

    从简单做起 任何困难的事情都是由简单的一步步一件件事情堆起来 理解好算法才是最重要 1.冒泡排序: public class Test { public static void main(String ...

  7. Java冒泡排序,Java对象冒泡排序

    今天呆公司特别无聊,百度了一下Java机试题,看到一个冒泡排序. 粘上我全部的代码: 实体类: package accp.com.internet;/** * 人物类 * @author xuxiao ...

  8. JAVA排序--[冒泡排序]

    package com.array; public class Sort_MaoPao { /** * 项目名称:冒泡排序 * 项目要求:用JAVA对数组进行排序,并运用冒泡排序算法 * 作者:Sev ...

  9. Java基础 -- 冒泡排序算法(带详细注释)

    冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并 ...

随机推荐

  1. JavaScript 中的 FileReader

    在不经过服务器的时候,本地预览照片,当确定以后再上传 它是H5提供的构造函数 用法: <input type='file'> <img src='' alt=''> <s ...

  2. Linux 我的常用命令记录

    Linux下复制粘贴快捷键 1. 在终端下: 复制命令:Ctrl + Shift + C  组合键. 粘贴命令:Ctrl + Shift + V  组合键. 2. 在控制台下: 复制命令:Ctrl + ...

  3. Price Channel Breakout 交易系统简价及源码

    Price Channel Breakout 交易系统简价及源码 既然这个版有交易系统的模型报告,小弟先在这裡野人献曝一下,把目前正在用的系统拿来请大家批评指教一下. ================ ...

  4. JS构造函数、原型对象、隐含参数this

    This 解析器再调用函数每次都会向函数内部传递一个隐含的参数this,this指向的是一个对象(函数执行的上下文对象) 1.以函数形式调用时,this永远是window. 2.以方法形式调用时,th ...

  5. MySQL及navicat for mysql中文乱码

    转载自:https://www.cnblogs.com/mufire/p/6697994.html 修改完之后记着重启mysql服务,在服务里边重启,即可生效! 全部使用utf8编码 MySQL中文乱 ...

  6. React-native完整配置流程

    开头敲黑板!! 无论你是RN的新手还是老手,跟着流程走,RN项目搭建起来完全不是问题!   一.网址收集 expo配置网址:https://blog.expo.io/building-a-react- ...

  7. python2和python3的range(100)的区别

    python2返回列表,python3返回迭代器,节约内存

  8. Expression基础体验

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; usin ...

  9. php实现ZIP压缩文件解压缩

    测试使用了两个办法都可以实现: 第一个:需要开启配置php_aip.dll <?php //需开启配置 php_zip.dll //phpinfo(); header("Content ...

  10. Genymotion下载及安装

    引用https://blog.csdn.net/yht2004123/article/details/80146989 一.注册\登录 打开Genymotion官网,https://www.genym ...