数据结构排序系列详解之三 冒泡排序
来源:互联网 发布:卡拉瓦乔 知乎 编辑:程序博客网 时间:2024/06/06 15:03
前面两篇博客讲述的排序算法都是基于插入类的排序,这篇文章开始介绍交换类的排序算法,即:冒泡排序、快速排序(冒泡排序的改进)。
交换类的算法:通过交换逆序元素进行排序的方法。
冒泡排序:反复扫描待排序记录序列,在扫描的过程中,顺次比较相邻的两个元素的大小,若逆序就交换位置。
算法实现代码如下:
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 stubint array[] = { 38, 62, 35, 77, 55, 14, 35, 98 };bubble(array);}}
算法分析:最好的情况是,需要排序的初始状态是正序排列的,则一趟扫描即可完成,此时时间复杂度是O(n);最坏情况是,需要排序的初始状态是反序的,则需要n-1趟扫描,此时时间复杂度是O(n^2),空间复杂度是O(1);该算法是一种稳定的排序方法。
- 数据结构排序系列详解之三 冒泡排序
- 数据结构排序之冒泡排序
- 数据结构排序之冒泡排序
- 数据结构之排序:冒泡排序
- 数据结构--排序之冒泡排序
- 数据结构之冒泡排序
- 数据结构之冒泡排序
- 数据结构之冒泡排序
- 数据结构之冒泡排序
- 数据结构之冒泡排序
- 数据结构之冒泡排序
- 数据结构之冒泡排序
- 数据结构之冒泡排序
- 数据结构之冒泡排序
- 走进数据结构之排序(三)---冒泡排序
- 排序系列之冒泡排序
- 数据结构 - 冒泡排序法详解
- 数据结构系列之希尔排序详解
- PC上最快的发包工具
- zc301在开发板和电脑上的拍摄效果对比
- HashMap、HashTable、LinkedHashMap和TreeMap
- oracle单行函数
- 1092 A+B for Input-Output Practice(IV)
- 数据结构排序系列详解之三 冒泡排序
- 我的blog在3mn.net
- 【解决】yum 安装 出错 Error: Protected multilib versions:
- 用powerDesigner生成数据库时_用列名称代替注释
- HTML浏览器中doctype的小常识解析
- 子类重写父类注意事项 java
- 添加自己的应用程序到右键菜单
- Ural 1320. Graph Decomposition(并查集,连通分支边数)
- IOS高级开发~Runtime(二)