用JAVA写一个冒泡排序「建议收藏」

用JAVA写一个冒泡排序「建议收藏」一:实现思想:  基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。二:实现代码:1packagebulubulu;23publicclassMaopao{4…

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

一:实现思想:

  基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

 

二:实现代码:

 1 package bulubulu;
 2 
 3 public class Maopao {
 4     private static int [] a={12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
 5     static int temp=0;//一个临时存放点
 6     public static void main(String[] args) {
 7         for (int i = 0; i < a.length; i++) {
 8             for (int j = 0; j < a.length; j++) {
 9                 if(a[j]>a[i]){
   
   //相邻的两个数依次进行比较,如果先改变正序或反序,可以改变大小于
10                     temp=a[j];
11                     a[j]=a[i];//在三行进行一个值的移动替换
12                     a[i]=temp;
13                 }
14             }
15         }
16         for (int i = 0; i < a.length; i++) {
17             System.out.println(a[i]);
18         }
19     }
20 }

  冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面,第三趟比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,没进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量;

  缺点:效率不高 (如果一个数组有n个数,那么排序完成后需要比较n*(n-1)/2次);

 

欢迎大家一起说出自己的想法。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一致性哈希算法原理及代码实现「建议收藏」

    一致性哈希算法原理及代码实现「建议收藏」一致性哈希安装goget-ugithub.com/junhaideng/consistent使用c:=consistent.New()ips:=[]string{“192.168.0.1″,”192.168.0.2″,”192.168.0.3″,”192.168.0.4”}for_,ip:=rangeips{c.Add(ip)}fmt.Println(“ip:”,c.Get(“/hello.txt”))背景在介绍一致性哈希之前,首先来看

    2022年7月27日
    3
  • 显著性分析算法的分类有哪些_显著性概率

    显著性分析算法的分类有哪些_显著性概率第一种分法第一类:基于低层视觉特征的显著性分析算法代表性算法:Itti模拟生物体视觉注意机制的选择性算法,比较适合处理自然图像第二类:不基于任何生物视觉原理的纯数学计算方法代表性算法:全分辨率的算法(AC算法)和基于空间频域分析的剩余谱算法(SR算法)第三类:将前两种进行融合的方法代表性算法:基于图论的算法(GBVS算法)这种算法在特征提取的过程中类似Itti算法去模拟视觉原理,但…

    2022年10月25日
    0
  • 按位异或的深入理解[通俗易懂]

    按位异或的深入理解[通俗易懂]异或运算:首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数!参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:  0^0=0,   1^0=1,   0^1=1,   1^1=0按位异或的3个特点:(1)0^0=0,0^1=1 0

    2022年6月6日
    43
  • 区块链项目都有哪些(区块链到底是啥)

    区块链项目都有哪些(区块链到底是啥)自2017年上半年以来,区块链应用项目的市场价值位列前20名。区块链项目主要分为四类:第一类:数字资产,第二类:智能合同,第三类:全球支付,第四类:基于平台的应用服务。一、数字资产第一类是数字资产,分为普通数字资产和匿名应用场景的匿名数字资产。通用数字资产包括比特币和莱特…

    2022年4月18日
    66
  • docker -t_docker -f

    docker -t_docker -f在面试中关于多线程同步,你必须要思考的问题一文中,我们知道glibc的pthread_cond_timedwait底层是用linuxfutex机制实现的。理想的同步机制应该是没有锁冲突时在用户态利用原子指令就解决问题,而需要挂起等待时再使用内核提供的系统调用进行睡眠与唤醒。换句话说,在用户态的自旋失败时,能不能让进程挂起,由持有锁的线程释放锁时将其唤醒?如果你没有较深入地考虑过这个问题,很可能…

    2022年9月15日
    0
  • pycharm安装第三方库_pycharm专业版下载

    pycharm安装第三方库_pycharm专业版下载1、安装支持python的IDEPycharm专业版;2、利用edu邮箱,免费注册获取license免费使用专业版。

    2022年8月26日
    6

发表回复

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

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