java数据结构与算法之冒泡排序详解

网友投稿 232 2023-05-19


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算法相关内容感兴趣的读者可查看本站专题:《Java数据http://结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


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

上一篇:Java Set简介_动力节点Java学院整理
下一篇:Hibernate映射之基本类映射和对象关系映射详解
相关文章

 发表评论

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