冒泡排序 by Python

最好时间复杂度:O(n)
最坏时间复杂度:O(n²)
平均时间复杂度:O(n²)
空间复杂度:O(1)
是否为稳定排序:Yes
sort in place:Yes
python实现:

class Solution:
    def bubbleSort(self, nums):
        """
        :type nums: List[int]
        :rtype: void
        """
        if len(nums) <= 1:
            return
        # 标志,当某次冒泡没有交换操作时,数组已经有序,无需再进行比较和交换操作
        flag = False
        for i in range(0, len(nums)):
            for j in range(1, len(nums)-i):
                if nums[j] < nums[j-1]:
                    nums[j], nums[j-1] = nums[j-1], nums[j]
                    flag = True
            if not flag:
                break
        return
if __name__ == "__main__":
    nums = [1,3,2,4,6,8,4,5,6,7]
    s = Solution()
    s.bubbleSort(nums)
    print(nums)

你可能感兴趣的:(冒泡排序 by Python)