冒泡排序与选择排序一样是一种十分基础的排序算法,也是一种交换排序.
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)
冒泡排序是一种基础的交换排序算法。它通过依次比较相邻元素并交换来逐步排序。在n次遍历后,最大或最小元素会冒泡到正确位置。其时间复杂度为O(n2),适用于小规模数据排序。以下是冒泡排序的Java代码实现和性能分析。
1464

被折叠的 条评论
为什么被折叠?



