Home

LinkWorld Algorithm Blog

15 Sep 2019

冒泡排序算法

冒泡排序算法

具体实现原理可见于:数据结构64:冒泡排序算法(起泡排序)

代码实现

Python实现

class BubbleSort:

    @staticmethod
    def sort(array):
        min_index = len(array) - 1
        for i in range(min_index + 1):
            index = 0
            for j in range(1, min_index + 1):
                if array[index] > array[j]:
                    continue
                index = j

            if index < min_index:
                array[index], array[min_index] = array[min_index], array[index]
            min_index = min_index - 1
        return array


def main():
    array = [5, 3, 2, 1, 9, 8, 4, 0]
    print("冒泡排序:%s" % BubbleSort.sort(array))

输出结果

冒泡排序:[0, 1, 2, 3, 4, 5, 8, 9]

附录

  • 时间复杂度:
    • 平均情况:$O(n^2)$
    • 最差情况:$O(n^2)$
    • 最好情况:$O(n)$
  • 空间复杂度:$O(1)$
  • 稳定性:稳定
  • 复杂度:实现简单

博文

Til next time,
LinkWorld at 16:56

scribble