JAVA十大排序算法之冒泡排序详解

网友投稿 361 2022-10-03


JAVA十大排序算法之冒泡排序详解

目录冒泡排序代码实现代码实现时间复杂度算法稳定性总结

冒泡排序

1.从数组头开始,比较相邻的元素。如果第一个比第二个大(小),就交换它们两个

2.对每一对相邻元素作同样的工作,从开始第一对到尾部的最后一对,这样在最后的元素应该会是最大(小)的数

3.重复步骤1~2,重复次数等于数组的长度,直到排序完成

代码实现

对下面数组实现排序:{24, 7, 43, 78, 62, 98, 82, 18, 54, 37, 73, 9}

代码实现

public class BubbleSort {

public static final int[] ARRAY = {24, 7, 43, 78, 62, 98, 82, 18, 54, 37, 73, 9};

public static void main(String[] args) {

print(ARRAY);

System.out.println("============================================");

print(sort(ARRAY));

}

public static int[] sort(int[] array) {

if (array.length == 0) {

return array;

}

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

//array.length - 1 -i 已经冒泡到合适位置无需在进行排序,减少比较次数

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

//前面的数大于后面的数交换

if (array[j + 1] < array[j]) {

int temp = array[j + 1];

array[j + 1] = array[j];

array[j] = temp;

}

}

}

return array;

}

public static void print(int[] array) {

for (int i : array) {

System.out.print(i + " ");

}

System.out.println("");

}

}

时间复杂度

对于上面12个数据项,从第一个元素开始,第一趟比较了11次,第二趟比较了10次,依次类推,一直到最后一趟,就是:

11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 6http://6次

若有n个元素,则第一趟比较为(n-1)次,第二趟比较为(n-2)次,依次类推:

(n-1) + (n-2) + (n-3) + ...+ 2 + 1 = n * (n-1)/2

在大O表示法中,去掉常数系数和低阶项,该排序方式的时间复杂度为:O(n2)

算法稳定性

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保http://持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。——百度百科

在代码中可以看到,array[j + 1] = exUGMsarray[j]的时候,我们可以不移动array[i]和array[j],所以冒泡排序是稳定的。

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何选择云 DDoS 清理服务(如何选择云服务器配置)
下一篇:中睿天下获评网信产学研合作创新与促进优质企业
相关文章

 发表评论

暂时没有评论,来抢沙发吧~