冒泡排序

Posted chump

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。

1、算法思想:临近的数字两两进行比较,按照从小到大或从大到小的顺序排列,这样排列一次后最大的或最小的数字被拍到最后。然后继续排序直到倒数第二位时结束。
2、代码示例:
(1)直接冒泡
public void sort(int[] list,int size){
    for (int i = 0;i<size-1;i++){
for (int j = 0 ;j<size-1;j++){
int temp ;
//boolean flag = false ;//优化的冒泡算法
if (list[j]>list[j+1]){
temp = list[j];
list[j] = list[j+1];
list[j+1] = temp ;
//flag = true ;
}
}
//if (flag = true)
// break;
}
}
(2)正宗冒泡
public void sort(int[] list,int size){
for (int i = 1;i<size-1;i++){
for (int j = size-1 ;j>=i;j--){
int temp ;
//boolean flag = false ;//优化的冒泡算法
if (list[j-1]>list[j]){
temp = list[j];
list[j] = list[j-1];
list[j-1] = temp ;
//flag = true ;
}
}
//if (flag = true)
// break;
}
}
(3)设置标志来优化冒泡算法(最优冒泡)
    如(2)注释部分
3、复杂度分析:时间复杂度:外层循环执行N-1次,内层循环最多执行N次,最少执行1次,平均执行(N+1)/2,循环比较(N+1)*(N-1)/2=(N^2-1)/2次。复杂度为O(N^2)。

 

以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

java冒泡排序法代码

python代码实现鸡尾酒排序(双向冒泡排序)

冒泡排序python代码

视频+图文+动画详解冒泡排序

交换排序(冒泡排序快速排序的算法思想及代码实现)

C语言冒泡排序。