冒泡排序法

208 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


一、冒泡排序基本思想

两两比较相邻记录的元素,如果反序则交换,直到没有反序的记录为止。

二、冒泡排序步骤

1.从第一个元素开始,比较相邻的元素。如果第一个比第二个大,就交换他们两个的位置

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后(第一次循环结束),最后的元素会是最大的数

3.针对所有的元素重复以上的步骤,除了最后一个元素(每循环交换一次,下一次循环交换次数少一次)

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

三、动图演示

Alt 图片来源:www.runoob.com/w3cnote/bub…

正序最快,倒序最慢(可倒序循环)

四、代码示例

代码如下(Java):

package p1.JavaArray;

import java.util.Arrays;
import java.util.Scanner;

public class SortDemo1 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        System.out.println("数组元素个数:");
        int num=sc.nextInt();
        int[] a=new int[num];


        bubbleSort(a,num);
    }


    public static void bubbleSort(int[] a,int num){
        System.out.println("输入"+num+"个元素");
        for(int i=0;i<a.length;i++)
        {
            Scanner sc=new Scanner(System.in);
            int b=sc.nextInt();
            a[i]=b;
        }

        for(int i=0;i<a.length-1;i++){//a.length-1:         循环
            for(int j=0;j<a.length-1;j++){// a.length-1-i : 每交换一次,下一次交换次数少一次,
                if(a[j]>a[j+1]){
                    int temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }

        System.out.println(Arrays.toString(a));

//        for(int x:a){
//            System.out.println(x);
//        }
    }
    
}

总结

提示:这里对文章进行总结:

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。