首页 > 编程语言 >【java】冒泡Bubble算法

【java】冒泡Bubble算法

时间:2023-01-11 21:10:03浏览次数:40  
标签:arr java int 冒泡排序 ++ length 冒泡 Bubble public


冒泡Bubble算法 

微信公众号:​​程序yuan​​
关注可获得更多干货和视频教程哦。问题或建议,请公众号留言;

面试中很常被考到的一道题,就是冒泡排序,可以说是非常经典了

参考网上一组图

下面以一群身高不等的学生为例,如下图所示:

  • 未排序的学生

【java】冒泡Bubble算法_Bubble

  • 已排序的学生

【java】冒泡Bubble算法_BubbleSort_02

  • 冒泡排序第一轮实现过程

【java】冒泡Bubble算法_冒泡排序_03

Java 代码实现

import org.junit.Test;

import java.util.Arrays;

/**
* @Author : ouYang
* @Date : 2018/10/12
* @Time : 11:55
* @Annotation :
*/
public class BubbleSort {


@Test
public void testBubbleSort(){
int [] arr = {1,5,2,67,8,62,432,2,7,3,8};
bubbleSort(arr,"desc");
System.out.println(Arrays.toString(arr));
}

//冒泡排序算法
public void bubbleSort(int [] arr,String type){
if("asc".equalsIgnoreCase(type)){
for(int i = 0; i < arr.length-1; i++){
for(int j = 0; j < arr.length-i-1; j++){
if(arr[j]>arr[j+1]){
arr[j] = arr[j] + arr[j+1];
arr[j+1] = arr[j] - arr[j+1];
arr[j] = arr[j] - arr[j+1];
}
}
}
}else if("desc".equalsIgnoreCase(type)){
for(int i = 0; i < arr.length-1; i++){
for(int j = 0; j < arr.length-i-1; j++){
if(arr[j]<arr[j+1]){
arr[j] = arr[j] + arr[j+1];
arr[j+1] = arr[j] - arr[j+1];
arr[j] = arr[j] - arr[j+1];
}
}
}
}

}

}

 

 

------------------------------------------------

关注小编微信公众号获取更多资源

【java】冒泡Bubble算法_微信公众号_04

 

 

标签:arr,java,int,冒泡排序,++,length,冒泡,Bubble,public
From: https://blog.51cto.com/u_12131813/6002828

相关文章

  • 【springboot异常】 Exception in thread "main" java.lang.UnsupportedClassVersionE
    微信公众号:​​程序yuan​​关注可获得更多干货哦!问题或建议,请公众号留言; 在我们运行SpringBoot应用的时候会遇到这样一个问题。Exceptioninthread"main"java.lang.U......
  • java 递归复制文件夹和文件
    公司的电脑是有安全检查的,每次复制一个文件到U盘中都要扫描半天,特别的慢,为了避开电脑的扫描,想到了java中的io流,写的一个使用递归的方式复制文件夹的demo。保存到博客中,跟大......
  • java高级--反射(reflect)
    1.获取Class对象的几种方式/***获取Class对象的三种方式*1Object——>getClass();*2任何数据类型(包括基本数据类型)都有一个“静态”的class属性*3通过Class类......
  • An Introduction to JavaScript
    AnIntroductiontoJavaScriptAnIntroductiontoJavaScriptLet’sseewhat’ssospecialaboutJavaScript,whatwecanachievewithit,andwhatothertechn......
  • 【学懂Java】(二)流程控制语句
    流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。包含顺序结构、分支结构、循环结构。顺序结构不必多说。一.分支结构if语......
  • Java程序的加载与执行
    Java程序的运行包括两个非常重要的阶段编译阶段运行阶段编译阶段编译阶段主要的任务是检查Java源程序是否符合Java语法,符合就能够正常生成字节码文件字节码文件......
  • 7.JavaScript--正则表达式
    实验原理正则表达式是用于处理字符串的强大工具,其他编程语言中也有正则表达式式的概念,区别只在于不同的编程语言实现支持的语法数量不同。它拥有自己的独特的语法以及一个......
  • Java发送HttpPost请求
    依赖jar包<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.6</version></dependency>发......
  • 为什么list的size只有一个的时候,无法执行for循环,不然会报这个错误(Unable to evaluate
       “ConcurrentModificationException是基于java集合中的快速失败(fail-fast)机制产生的,在使用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了......
  • java.2
    初步接触java注释(comment)java中“//表示单行注释”“/*表示多行注释”“/*(此处应为星号)在java中表示文档注释”(不常用)简单的文字设置File->setting->font(改变整......