冒泡排序就是这么容易

简介: 冒泡排序就是这么容易

愚昧者怨天尤人,无能者长吁短叹,儒弱者颓然放弃。

冒泡排序就是这么容易

welcome rodert

冒泡排序(Bubble Sort)

科班的大多在学校时都学过数据结构和算法,不论是做算法还是做业务,排序都是经常要打交道的,还记得冒泡排序吗?一起来看看




介绍




【百度百科】:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。


实质:把大(小)的元素往前(后)调,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。


时间复杂度: O(n²)



实现


算法描述(从小到大排序):


长度为n的数组,选取第一个数(第0位)为 i,i与i+1比较,如果i>i+1,那么交换位置


循环i++,直到n-1位,一趟下来,数组中最大的排到数组最后面。



冒泡排序流程图

 

Java代码实现

    @Test
    public void bubbleSort(){
        //创建一个乱序的数组
        int [] arr = {0, 10, 5, 9, 17, 2, 13};
 
        //双层for循环,控制循环次数
        //外层是排序趟数,内层是比较次数
        for (int i=0;i<arr.length-1;i++){
            for (int j=0;j<arr.length-1-i;j++){
                if (arr[j]>arr[j+1]){//如果j>j+1,置换位置
                    int temp = arr[j+1];//临时变量
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        //排序后结果
        for (int i:arr) {
            System.out.println(i);
        }
    }


目录
相关文章
|
2月前
|
搜索推荐
1.冒泡排序
1.冒泡排序
30 0
|
2月前
|
搜索推荐
什么是冒泡排序
什么是冒泡排序
|
2月前
|
搜索推荐
什么是冒泡排序?
什么是冒泡排序?
26 0
|
7月前
|
算法 搜索推荐 Python
冒泡排序
冒泡排序
32 1
|
8月前
|
搜索推荐 算法
15 冒泡排序
15 冒泡排序
29 0
|
12月前
bubbleSort-->冒泡排序
bubbleSort-->冒泡排序
|
12月前
|
C#
【C#视频】冒泡排序
【C#视频】冒泡排序
|
12月前
|
算法 C#
C#之冒泡排序
C#之冒泡排序
37 0
|
算法 C语言
|
算法 搜索推荐 JavaScript