图解算法系列之冒泡排序(Low版)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解算法系列之冒泡排序(Low版)相关的知识,希望对你有一定的参考价值。

(1)算法描述

对于给定的线性序列,每一个元素与其下一个元素进行比较,如果满足大于当前元素就交换位置,然后依次向下比较。利用数学归纳法得知:N个元素总共比较N(N-1)次。

(2)图解算法

技术分享图片

(3) C/C++代码实现

Custom.h

void BubbleSort(int arr[], int number);

Custom.cpp

void BubbleSort(int arr[], int number) {
    for (int i = 0; i < number; i++) {
        for(int j = 0; j < number-1; j++) {
            if(arr[j] > arr[j+1]) {
                int temp = arr[j+1];
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }
}

(4)Java代码实现

public class BubbleSort {
    public static void sort(int[] arr, int number) {
        for (int i = 0; i < number; i++) {
            for (int j = 0; j < number-1; j++) {
                if (arr[j] > arr[j+1]) {
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
}

(5) 时间复杂度分析

无论是否数据规模处于最好还是最坏情况,都需要每个元素进行比较,因此时间复杂度是O(n^2)。

以上是关于图解算法系列之冒泡排序(Low版)的主要内容,如果未能解决你的问题,请参考以下文章

图解算法系列之冒泡排序(优化版)

图解算法系列之插入排序(优化版)

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

(附代码)动图图解 | 十大经典排序算法Python版实现

图解排序算法之3种简单排序(选择,冒泡,直接插入)