java中的冒泡排序是如何实现的

不废话上代码:

public static int[] bobleSort(int[] arr) {

for(int i = 0; i<arr.length;i++) {

for(int j = 0 ;j<arr.length-i-1;j++) {

if (arr[j] > arr[j+1]) {

int temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

printArray(arr);

System.out.println(“第几次排序”+ i);

}

return arr;

}

public static void printArray(int[] arr) {

for(Integer item : arr) {

System.out.print(item+” “);

}

}

public static void main(String[] agrs) {

int[] arr = new int[] {23,43,45,21,32,67,21,90};

printArray(arr);

System.out.println(“最初顺序”);

int[] boor=bobleSort(arr);

printArray(boor);

System.out.println(“最后结果”);

}

执行结果:

23 43 45 21 32 67 21 90 最初顺序

23 43 21 32 45 21 67 90 第几次排序0

23 21 32 43 21 45 67 90 第几次排序1

21 23 32 21 43 45 67 90 第几次排序2

21 23 21 32 43 45 67 90 第几次排序3

21 21 23 32 43 45 67 90 第几次排序4

21 21 23 32 43 45 67 90 第几次排序5

21 21 23 32 43 45 67 90 第几次排序6

21 21 23 32 43 45 67 90 第几次排序7

21 21 23 32 43 45 67 90 最后结果

————————————————

我们先来看看冒泡排序的算法是如何定义的:

冒泡算法

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

Java编码实现

了解了冒泡排序的基本定义之后,根据其思想我们来根据题主的要求看看如何用Java实现冒泡排序算法,代码如下图:

java中的冒泡排序是如何实现的图1

基本原理就是如下的逻辑走向:

java中的冒泡排序是如何实现的图2

执行后输出如下:

java中的冒泡排序是如何实现的图3

有没有发现什么问题?是不是到了第6次已经完成排序了?后面的是不是就属于浪费了?所以我们需要优化一下,当他的顺序已经排序完毕了就不再进行排序了,优化后的代码如下:

java中的冒泡排序是如何实现的图4

执行后输出:

java中的冒泡排序是如何实现的图5

可以看出来只执行了6次排序。

算法复杂度

那么冒泡算法的复杂度是怎样的呢?相信大家看到这已经基本上可以算出来了:

  • 时间复杂度:两层循环O(n²);

  • 空间复杂度:还是原来的数组,没有开辟新的内存空间,所以是O(n)。

本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/it/38301.html

(0)
上一篇 2023-08-08 13:45
下一篇 2023-08-08 13:54

相关推荐

  • 有哪些实用的搜索技巧

    现在我们办公已经离不开电脑了,互联网的时代,搜索技巧变得越来越重要,怎么能快速找到自己想要的信息,已经是一种必要的能力了。今天我就提高办公效率给大家说三个搜索技巧,分别是去广告重定…

    2023-01-04
  • 如何用ps调出清新淡雅的色彩效果

    首先说明一点,手机修图功能没有PS或者LR那么强大,所以对你的原片要求就高一些。如果你的照片后期调色是要用手机来调的,那么你最好前期拍好点,要不然调不出来。 在修图之前大家要知道小…

    2023-07-13
  • 网络管理员需要会些什么技能

    一、网络管理员要牢记网络基础知识 有关网络的基础知识是开展一切网络管理工作的前提,对理论知识的模棱两可必定导致实际工作的不彻底。通常说来,以下基础知识是需要重点掌握的: 1、什么是…

    电脑教程 2023-05-04
  • 如何制作特别的爱图片(猜你喜欢的图片怎么制作)

    对于,我们首先来看一下,什么是“爱”。百度搜索对“爱”的解释如下:爱,是指人类主动给予的或自觉期待的满足感和幸福感。爱是人的精神所投射的正能量。是指人主动或自觉地以自己或某种方式,…

    电脑教程 2023-08-17
  • ps软件编辑里的自由变换都能干什么用

    自由变换可以说是照片编辑中使用频率很高的一个命令,它可以对照片的大小进行缩放,可以对照片的角度进行旋转,也可以对方向进项翻转,真的是照片编辑中不得不用的命令。使用自由变换的时候图层…

    2023-04-28
  • 笔记本无线出现黄叹号有限的访问权限

    本地连接出现感叹号解决方法:方法一(修复)步骤: 1、右键点击“我的电脑”, 然后点击“属性”!! 2、然后右键点击“本地连接”, 然后点击“修复”选项!! 3、然后等待修复完成 …

    电脑教程 2023-06-17
  • 怎么用U盘重装系统

    关于电脑重装系统的方法有很多,之所以很多人经常问。我想可能是方法太多太杂,让很多朋友感到了迷茫。同时,由于对安装系统方面不是很了解,对于注意事项不太清楚,最后就算安装好了系统,结果…

    2023-05-09
  • 有哪些好用的maya插件,maya怎么用插件加骨骼

    题主你好 这里我推荐几个插件 建模类 Hardmesh插件:是强大的硬面网格建模插件,它是专门为了三维动画软件MAYA进行研发推出的,主要有布尔运算,曲线投射切割。做次世代或者机械…

    电脑教程 2023-03-09
  • 笔记本怎么把机械硬盘的系统迁移到固态硬盘

    迁移系统需要用到有PE功能的大容量u盘(用老毛桃或者大白菜PE)或者有引导DOS系统的其他介质。需要有硬盘分区知识和操作系统结构知识。 迁移系统盘。操作流程就是先备份已有的系统盘到…

    电脑教程 2022-12-27
  • win10电脑重装系统后连不上网

    电脑重装WIN10以后,连不上网络,一般会有三种情况:一是网卡驱动没有安装好,二是网络设置有问题,一是网卡硬件出了问题。 要解决这些问题,其实很容易。让我具体道来: 1、网卡硬件出…

    2023-07-24