java数据结构与算法之冒泡排序详解
作者:android小猪 时间:2022-08-01 11:20:08
本文实例讲述了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程序设计有所帮助。
标签:java,数据结构,算法,冒泡排序
0
投稿
猜你喜欢
关于springboot2.4跨域配置问题
2022-05-01 17:02:15
一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)
2021-06-26 23:21:16
springboot操作静态资源文件的方法
2022-07-13 06:29:11
RxJava+Retrofit+Mvp实现购物车
2022-03-22 16:24:48
java gui详解贪吃蛇小游戏实现流程
2023-10-08 07:12:24
Android 音乐播放器的开发实例详解
2023-12-07 17:53:10
C#从命令行读取参数的方法
2023-07-12 15:23:11
java二叉查找树的实现代码
2022-08-12 02:36:43
Mybatis执行流程、缓存原理及相关面试题汇总
2022-10-15 23:30:28
Spring的事务管理你了解吗
2023-02-05 19:44:16
Android Studio 3.3.2 正式版的安装教程图解
2022-01-13 22:22:34
浅谈Unity脚本生命周期与执行顺序
2022-05-22 00:47:34
c#中LINQ的基本用法(三)
2022-11-29 11:06:31
Android 控制wifi 相关操作实例
2023-09-08 20:35:49
MyBatis一二级缓存
2021-07-03 13:01:59
CAD2008+VS2008开发ObjectARX加载失败问题(推荐)
2023-11-06 00:36:46
Maven项目部署到服务器设置访问路径以及配置虚拟目录的方法
2023-12-04 02:12:12
C#的TimeSpan案例详解
2023-11-20 11:34:52
Java中的StringBuilder性能测试
2021-09-11 03:38:20
简单说明Java的Struts框架中merge标签的使用方法
2023-09-17 00:32:26