用JAVA写一个冒泡排序「建议收藏」
JAVA 一个 建议 收藏 冒泡排序
2023-06-13 09:12:12 时间
大家好,又见面了,我是你们的朋友全栈君。
一:实现思想:
基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
二:实现代码:
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.cn/157137.html原文链接:https://javaforall.cn
相关文章
- Java项目毕业设计:基于springboot+vue的电影视频网站系统「建议收藏」
- java queue toarray_Java PriorityBlockingQueue toArray()用法及代码示例
- java入门编程(菜鸟教程)
- java判断一个对象是否为空_Java中判断对象是否为空的方法的详解
- java 取余 小数_Java小数取余问题求助「建议收藏」
- java怎么输出保留两位小数_剖析Java输出怎么保留两位小数「建议收藏」
- java怎么运行_怎样启动JAVA?「建议收藏」
- java使用md5_Java_MD5的使用「建议收藏」
- java 二维数组 arraycopy_Java对数组的复制[通俗易懂]
- java 实现多态_Java多态的实现原理
- java有什么作用_Java有什么用「建议收藏」
- c++和java哪个好学_c++语言和Java语言,初学者该如何选择?「建议收藏」
- java标识符是什么_Java 标识符「建议收藏」
- java.util.scanner sc_Java的Scanner sc=new Scanner(System.in)是什么意思「建议收藏」
- eclipse创建一个java项目目录_Eclipse创建JAVA项目
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java session id 生成_Java通过sessionId获取Session「建议收藏」
- Java语言中一个字符占几个字节?「建议收藏」
- java一个字符几个字节_Java 语言中一个字符占几个字节?
- java平均的随机数_Java 随机数详解「建议收藏」
- ringbuffer java例子_Java RingBuffer.publish方法代碼示例「建议收藏」
- java 自定义类加载器_JAVA中如何使用应用自定义类加载器「建议收藏」
- java socket详解_Java Socket 编程原理及教程「建议收藏」
- java输出一个数组的元素_Java输出数组元素「建议收藏」
- Java—java.util.calendar类详解「建议收藏」
- intellij怎么创建Java_intellij idea创建java项目
- Java Activiti6.0 spring5 SSM 工作流引擎 审批流程 java项目框架详解编程语言
- 数据库Java实现Oracle数据库监控(java监听oracle)
- Java无法连接Redis服务器(java连不上redis)
- 在Linux上编译Java 实用教程指南(linux上编译java)
- 简明易懂的介绍Linux java包的25个字的文章标题:Linux Java包:开发和运行Java程序的工具(Linuxjava包)
- Java与MySQL的无缝衔接:实现高效数据操作(java中使用mysql)
- Oracle数据库中运行Java程序的简易指南(oracle中写java)
- 缓存使用Redis让Java代码更加迅速缓存设置(redis设置java)
- Java得到一个整数的绝对值,不使用任何判断和比较语句,包括API