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)

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

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

Java冒泡排序的原理?
冒泡排序是所欲排序算法里最好理解的了。1、排序算法:A)比较相邻的元素。如果第一个比第二个大,就交换他们两个。B)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。C)针对所有的元素重复以上的步骤,除了最后一个。D)持续每次对越来越少...

冒泡排序如何使用Java语言完成?
冒泡排序的原理: 从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个元素比后一个元素大,则交换它们的位置。整个过程完成后最后一个元素就是最大值,完成第一轮比较,后边通过for循环依次完成后续比较。 运行代码如下: package day01; public class 冒泡 { public static void ma...

冒泡排序如何使用Java语言完成?
冒泡排序的原理:从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个元素比后一个元素大,则交换它们的位置。整个过程完成后最后一个元素就是最大值,完成第一轮比较,后边通过for循环依次完成后续比较。运行代码如下:package day01;public class 冒泡 { public stat...

java冒泡升序排列
Java冒泡升序排列就是使用Java语言实现冒泡,将待排元素按照从小到大的顺序进行排列。冒泡排序的现象:较大的元素会“下沉”,较小的元素会“上浮”。冒泡排序的理解:第一次找到所有元素中最大的元素放在倒数第一位不再变动,第二次再找到剩余元素中最大的元素放到倒数第二位不再变动,依此类推,直到...

用java冒泡排序和递归算法
冒泡排序 (1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。(2)用java实现 ubli cclass bubbleSort { public ...

java中冒泡排序算法的详细解答以及程序?
应用交换排序基本思想的主要排序方法有冒泡排序和快速排序。 冒泡排序 将被排序的记录数组 R[1..n] 垂直排列,每个记录 R[i] 看做是重量为 R[i].key 的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组 R 。凡扫描到违反本原则的轻气泡,就使其向上“漂浮”。如此反复进行,直到最后...

java冒泡排序详细讲解
冒泡排序的算法思想是:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没...

Java冒泡排序中i、j各代表什么意思?
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”...

Java实现几种常见排序方法
插入排序的原理是对数组中的第i个元素,认为它前面的i-1个已经排序好,然后将它插入到前面的i-1个元素中。插入排序对少量元素的排序较为有效.public void sort(int obj[]){ for(int j=1;j<obj.length;j++){ int key=obj[j];int i=j-1;while(i>=0&&obj[i]>key){ obj[i+1]=obj[...

java冒泡排序法代码
冒泡排序是比较经典的排序算法。代码如下:for(int i=1;i<arr.length;i++){for(int j=1;j<arr.length-i;j++){\/\/交换位置}

相似回答