java数据结构与算法之冒泡排序详解
作者:android小猪 发布时间:2022-08-01 11:20:08
标签:java,数据结构,算法,冒泡排序
本文实例讲述了java数据结构与算法之冒泡排序。分享给大家供大家参考,具体如下:
前面文章讲述的排序算法都是基于插入类的排序,这篇文章开始介绍交换类的排序算法,即:冒泡排序、快速排序(冒泡排序的改进)。
交换类的算法:通过交换逆序元素进行排序的方法。
冒泡排序:反复扫描待排序记录序列,在扫描的过程中,顺次比较相邻的两个元素的大小,若逆序就交换位置。
算法实现代码如下:
package exp_sort;
public class BubbleSort {
public static void bubble(int array[]) {
boolean change = true;
for (int i = 0; i < array.length && change; i++) {
change = false;
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
change = true;
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println("\n");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[] = { 38, 62, 35, 77, 55, 14, 35, 98 };
bubble(array);
}
}
算法分析:最好的情况是,需要排序的初始状态是正序排列的,则一趟扫描即可完成,此时时间复杂度是O(n);最坏情况是,需要排序的初始状态是反序的,则需要n-1趟扫描,此时时间复杂度是O(n^2),空间复杂度是O(1);该算法是一种稳定的排序方法。
希望本文所述对大家java程序设计有所帮助。


猜你喜欢
- 向上转型:子类对象转为父类,父类可以是接口。公式:Father f = new Son();Father是父类或接口,son是子类。向下转型
- 本文实例讲述了java简单解析xls文件的方法。分享给大家供大家参考,具体如下:读取:import java.io.*;import jxl
- 重写 equals()方法 和 hashCode()方法最近看了学习了集合的简单的知识,碰到了讲解 Set 的部分,感觉很好奇,这里对于 S
- MyBatis简介MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC
- 1.注解的理解1)注解(Annotation)也被称为元数据(Metadata),用于修饰解释包. 类、方法、属性、构造器、局部变量等数据信
- Java非法字符: ‘\ufeff‘Java中项目启动出现 非法字符: '\ufeff
- JAVA接口的概念官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不
- 在阅读这篇文章之前,大家可以先看下《Java多线程atomic包介绍及使用方法》,了解atomic包的相关内容。一、何谓Atomic?Ato
- package org.load.u;import java.io.File;import java.util.LinkedHashMap;
- ByteArrayInputStream介绍ByteArrayInputStream 是字节数组输入流。它继承于 InputStream。I
- 为了方便客户抓取Log,现通过TCP协议连接指定服务器,传输指定内容,定义指定目录,IP,PORT字段接收参数。直接上代码 public s
- 本文实例讲述了Java编程实现获取当前代码行行号的方法。分享给大家供大家参考,具体如下:最近的项目中,为了实现自定义的log类,能够输出具体
- 发现问题:问题如图所示,在eclipse中开启tomcat服务器时报错:端口已被占用。这是因为在tomcat开启的状态下,eclipse异常
- 顺序语句顺序顾名思义就是程序自上而下执行public class User { public static voi
- app的启动方式: 1.)冷启动 当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启
- 不好意思哦,上一篇Android自学开发第六篇代码控制界面挖了个坑,如果运行不起来的同学,请注意查看本篇文章。Android Project
- 本文实例为大家分享了Android自定义带圆点的半圆形进度条,供大家参考,具体内容如下仅限用于半圆形,如须要带圆点的圆形进度条,圆点会出现错
- 本文实例为大家分享了C#实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下之前一直想写一个贪吃蛇小游戏,上个周末终于有时间做了一个,现在和
- 尽管Java提供了一个可以处理文件的IO操作类。 但是没有一个复制文件的方法。 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时
- 小伙伴私信我说想要研究下Spring的源码,想让我出一期教程来实现IDEA导入Spring源码,今天它来了~版本 :IDEA 2020.2.