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
  • asp之家 软件编程 m.aspxhome.com