'''
https://github.com/hustcc/JS-Sorting-Algorithm
冒泡排序
1. 比较相邻的元素。如果第一个比第二个大，就交换他们两个。
2. 对每一对相邻元素作同样的工作，从开始第一对到结尾的最后一对。这步做完后，最后的元素会是最大的数。
3. 针对所有的元素重复以上的步骤，除了最后一个。
4. 持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。
时间复杂度0(n^2),稳定.空间复杂度O(1)
假定在待排序的记录序列中，存在多个具有相同的关键字的记录，若经过排序，这些记录的相对次序保持不变，
即在原序列中，r[i]=r[j]，且r[i]在r[j]之前，而在排序后的序列中，r[i]仍在r[j]之前，
则称这种排序算法是稳定的；否则称为不稳定的。
'''


arr = [5,4,3,2,1,0]
def bubble_sort(arr):
    for i in range(1,len(arr)):
        # 每比完一轮，最后一个元素就是最大值，所以下一轮不用再比较最后一个元素
        for j in range(len(arr)-i):
            if arr[j] > arr[j+1]:
                arr[j],arr[j+1] = arr[j+1], arr[j]
    return arr

arr = bubble_sort(arr)
print(arr)
