Java冒泡排序的原理?

我还是对冒泡排序不怎么理解。。

冒泡排序是所欲排序算法里最好理解的了。
1、排序算法:
A)比较相邻的元素。如果第一个比第二个大,就交换他们两个。
B)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
C)针对所有的元素重复以上的步骤,除了最后一个。
D)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
2、给你一个java的实现代码:
public class BubbleSort{
     public static void main(String[] args){
         int score[] = {67, 69, 75, 87, 89, 90, 99, 100};
         for (int i = 0; i < score.length -1; i++){ //最多做n-1趟排序
             for(int j = 0 ;j < score.length - i - 1; j++){ //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
                 if(score[j] < score[j + 1]){ //把小的值交换到后面
                     int temp = score[j];
                     score[j] = score[j + 1];
                     score[j + 1] = temp;
                 }
             }
             System.out.print("第" + (i + 1) + "次排序结果:");
             for(int a = 0; a < score.length; a++){
                 System.out.print(score[a] + "\t");
             }
             System.out.println("");
         }
             System.out.print("最终排序结果:");
             for(int a = 0; a < score.length; a++){
                 System.out.print(score[a] + "\t");
        }
     }
 }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-03-12

本视频通过动画的方式展示冒泡排序的原理。希望对大家理解冒泡排序的原理有所帮助。如果大家觉得有帮助,请点赞,如果关注本号就更好了。如果大家有什么问题,也可以在下面留言。

追问

阔以阔以,生动形象

本回答被提问者和网友采纳
第2个回答  2020-03-30
冒泡排序不分需要,因为排序规则是如果有n个数字就需要进行n次排序,每次排序会把最大的或者最小的置于头部,因为像气泡冒出来,所以叫冒泡,冒泡是除了线性排序外最简单的了,通常面试都会考快排。本回答被网友采纳
第3个回答  2020-12-05

    整个数列分成两部分:前面是无序数列,后面是有序数列

    初始状态下,整个数列都是无序的,有序数列是空

    如果一个数列有n个元素,则至多需要n-1趟循环才能保证数列有序

    每一趟循环可以让无序数列中最大数排到最后,(也就是说有序数列的元素个数增加1)

    每一趟循环都从数列的第一个元素开始进行比较,依次比较相邻的两个元素,比较到无序数列的末尾即可(而不是数列的末尾)

    如果前一个大于后一个,交换