vlambda博客
学习文章列表

七大排序算法之冒泡排序

前言

感觉虽然学了这么久的编程,但是越发感觉自己编程的思维没有达到理想中的效果,于是决定整理一下常见的七大排序算法,虽然都很基础,我也是这么认为的,但是越是基础的东西,吃透了之后,还是能有所收获的,比如排序算法,至少在需要的场合,能够信手拈来,我觉得这是必须的。废话不多说,先从最简单的冒泡排序开始。

原理

不断遍历数组每个元素,比较相邻两个元素的大小,如果为升序,当前者元素大于后者时,则交换这两个元素,直到第n-1个元素,则第一次遍历结束,此时最大的数已经“冒泡”到了最后,然后遍历余下的n-1个元素,同样的操作,第二大的数“冒泡”到了倒数第二个位置,往复下去即可完成排序

时间复杂度

平均情况:n*n

最坏情况:n*n

最好情况:n

代码

public class BubbleSort {

    //冒泡排序
    //不断比较相邻的两个数的大小。交换位置

    //时间复杂度   最坏情况  n*n  最好情况 n  平均情况 n*n
    public static void main(String[] args) {
        int[] arr={6,3,8,2,9,1};
        System.out.println("排序前数组为:");
        for(int num:arr){
            System.out.print(num+" ");
        }
        for(int i=0;i<arr.length-1;i++){//外层循环控制排序趟数
            for(int j=1;j<arr.length-i;j++){//内层循环控制每一趟排序多少次
                if(arr[j-1]>arr[j]){
                    int temp=arr[j-1];
                    arr[j-1]=arr[j];
                    arr[j]=temp;
                }
            }
        }
        System.out.println();
        System.out.println("排序后的数组为:");
        for(int num:arr){
            System.out.print(num+" ");
        }
    }
}

下一篇:选择排序

入口在此:

选择排序

https://blog.csdn.net/hq942845204/article/details/80156508