1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
def bubble_sort(data): """ 进阶版 最坏情况 时间复杂度 O(n**2) 最好情况 时间复杂度 O(n) 稳定排序法 空间复杂度最佳 只需要一个额外空间 适用于数据量小或有部分数据已经排过序的情况 :param data: :return: """ for i in range(len(data)-1, -1, -1): flag = False for j in range(i): if data[j] > data[j + 1]: data[j], data[j + 1] = data[j + 1], data[j] flag = True if not flag: break print('第{0}次排序: {1}'.format(len(data)-i, data)) return data
if __name__ == '__main__': data = [3, 0, 5, 4, 2, 6, 8, 1, 9, 7] print(data) print(bubble_sort(data))
|