java冒泡排序经典代码_java冒泡排序[通俗易懂]

java冒泡排序经典代码_java冒泡排序[通俗易懂]经典算法——冒泡排序(BubbleSort)一、示例代码(伸手党看这里)1.示例一importjava.util.Arrays;publicclassBubbleSort{publicstaticvoidbubbleSort(int[]arr){inttemp;/*临时变量,交换数据时使用*/intlength=arr.length;for(intp=length-1…

大家好,又见面了,我是你们的朋友全栈君。

经典算法——冒泡排序(Bubble Sort)

一、示例代码(伸手党看这里)

1.示例一

importjava.util.Arrays;public classBubbleSort {public static void bubbleSort(int[] arr){int temp; /*临时变量,交换数据时使用*/

int length =arr.length;for(int p = length-1; p > 0; p–){ /*需要进行N-1(数组长度减一)趟排序*/

for(int i = 0; i < p; i++){ /* 开始排序 */if(arr[i] > arr[i+1]){//进行位置交换

temp =arr[i];

arr[i]= arr[i+1];

arr[i+1] =temp;}

}

}

}public static voidmain(String[] args) {int[] a = {10, 2, 5, 7, 23, 59, 3};

bubbleSort(a);

System.out.println(Arrays.toString(a));

}

}

当然,上面的代码可以小小的优化一下。

在使用冒泡排序的时候有可能会遇到这样一种情况:某一趟排序从头到尾,数组中的数字都没有发生位置交换。

那么上面这种情况说明了什么呢?说明了在经过上一趟的排序后,整个数组就已经被排好序了。

这么说的话原来计划的N-1趟排序我们是不是可以不用跑满了?是的!

所以可以优化的地方是:在每一趟排序排完后,看一下这一趟有没有发生数字位置

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152139.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月22日 上午8:46
下一篇 2022年6月22日 上午9:00


相关推荐

  • lambda表达式用法_使用lambda表达式定义函数

    lambda表达式用法_使用lambda表达式定义函数(一)输入参数在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割。示例1下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示“ThisisaLambdae…

    2026年1月26日
    5
  • C语言——经典200道实例【基础例题100道——进阶例题100道】[通俗易懂]

    C语言——经典200道实例【基础例题100道——进阶例题100道】[通俗易懂]目录:===============================基础例题100道===============================1.输出”Hello,World!”2.输出整数3.输出单个字符4.输出浮点数5.输出双精度(double)数6.两个整数相加7.两个浮点数相乘8.字符转ASCII码(1)一次读取长字符,并一个一个显示…

    2022年6月20日
    27
  • mysql raiserror_SQL Server 中 RAISERROR 的用法

    mysql raiserror_SQL Server 中 RAISERROR 的用法raiserror 是由单词 raiseerror 组成 raise 增加 提高 提升 raiserror 的作用 raiserror 是用于抛出一个错误 以下资料来源于 sqlserver200 的帮助 其语法如下 RAISERROR msg id msg str local variable severity state argument n

    2026年3月18日
    2
  • C++字符串转数字

    C++字符串转数字前言 C 字符串与数字的转换应该是很常见的问题 每次遇到了再去查有点费劲 干脆记录下来字符串转数字 stod 字符串转 doublestof 字符串转 floatstoi 字符串转 intstol 字符串转 longstold 字符串转 doublestoll 字符串转 longlongstou 字符串转 unsignedlong 字符串转 unsingedlong 注意 没有 unsigneddoub 和 unsigned

    2026年3月18日
    2
  • redis sadd php,Redis Sadd命令

    redis sadd php,Redis Sadd命令RedisSadd 命令 RedisSadd 命令将一个或多个成员元素加入到集合中 已经存在于集合的成员元素将被忽略 假如集合 key 不存在 则创建一个只包含添加的元素作成员的集合 当集合 key 不是集合类型时 返回一个错误 注意 在 Redis2 4 版本以前 SADD 只接受单个成员值 语法 redisSadd 命令基本语法如下 redis127 0 0 1 6379 gt SADDKEY

    2026年3月19日
    2
  • TCP/IP协议详解(干货!)

    TCP/IP协议详解(干货!)计算机体系结构上图展示了计算机结构的 OSI 七层模型以及 TCP IP 概念模型 应用层 向用户提供一组常用的应用程序 比如电子邮件 文件传输访问 虚拟终端等 应用层协议 两个主机的两个应用程序之间进行相互交流的数据格式 传输层 提供应用程序间的通信 其功能包括 格式化信息流 以及 提供可靠传输 网络层 标记了互联网上每一台主机的地址 负责相邻计算机之间的通信 链路层 底层物理通路 线路 在计算机体系结构的基础上 我们来看一下 TCP IP 协议 TCP IP 协议 简介 TCP IP 协议实际

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号