常见排序算法之冒泡排序
2017-07-20 15:51
127 查看
冒泡排序与选择排序一样是一种十分基础的排序算法,也是一种交换排序.
4.冒泡排序:
算法思想:
(1)依然将线性表看成两部分有序表与无序表,开始是,整个线性表为无序表.
(2)第一趟排序,从第一个元素开始,到最后一个元素,相邻元素依次两两比较,前一个元素比较大则两两交换.一趟排序以后,最大的元素,像冒泡一样,已经排到了线性表的最后一个元素.
(3)经过n-1次选择过程,将得到一个有序线性表
示意图
代码示例
交换函数
算法性能分析
与选择排序一样,最好,最坏,平均时间复杂度均为O(n2)
4.冒泡排序:
算法思想:
(1)依然将线性表看成两部分有序表与无序表,开始是,整个线性表为无序表.
(2)第一趟排序,从第一个元素开始,到最后一个元素,相邻元素依次两两比较,前一个元素比较大则两两交换.一趟排序以后,最大的元素,像冒泡一样,已经排到了线性表的最后一个元素.
(3)经过n-1次选择过程,将得到一个有序线性表
示意图
代码示例
/** * @param array * 冒泡排序 */ public static void bubbleSort(int[] array) { for(int i=0;i<array.length-1;i++){ for(int j=1;j<=array.length-1-i;j++){ if(array[j-1]>array[j]){ swap(j-1, j, array); } } } }
交换函数
/** * @param i * @param j * @param array */ private static void swap(int i, int j,int [] array) { int temp=array[i]; array[i]=array[j]; array[j]=temp; }
算法性能分析
与选择排序一样,最好,最坏,平均时间复杂度均为O(n2)
相关文章推荐
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- 常见算法:C语言中的排序算法--冒泡排序,选择排序,希尔排序
- Java常见排序算法之冒泡排序
- 常见算法之排序一【冒泡排序】
- 常见算法:C语言中的排序算法--冒泡排序,选择排序,希尔排序
- c语言中冒泡排序、插入排序、选择排序算法比较
- 排序算法---基础算法(冒泡排序,快速排序,选择排序,直接插入排序,桶排序)
- 数组的常见操作:冒泡排序 选择排序与取最值
- 算法[1]---排序---冒泡排序
- iOS 算法面试题(冒泡排序、选择排序、链表逆序)~demo
- 【C#算法】冒泡排序 选择排序 插入排序 希尔排序--转
- 经典算法:二分查找、插入排序、选择排序、冒泡排序
- 算法:交换排序之冒泡排序
- 我在北京找工作(二):java实现算法<1> 冒泡排序+直接选择排序
- [学习笔记]排序算法之冒泡排序
- 【Java】五种常见排序之-----------冒泡排序
- 《常见算法和数据结构》元素排序(6)——重头戏:快速排序
- 五、排序算法之简单算法——冒泡排序、简单选择排序和直接插入排序
- java常见排序算法--顺序排序、冒泡排序、插入排序分析与比较
- 冒泡排序、选择排序、堆排序、快速排序、插入排序算法复杂度分析与算法实现(自己总结与转)