python冒泡排序

def cal_time(func):
    def wrapper(*args, **kwargs):
        t1 = time.time()
        result = func(*args, **kwargs)
        t2 = time.time()
        print("%s running time: %s secs." % (func.__name__, t2 - t1))
        return result
    return wrapper


@cal_time
def bubble_sort(li):
    """
    冒泡排序原理:前一个数和后一个数做比较,较大的数往后排然后依次比较
    :param li:
    :return:
    """
    # n 个数字需要做n-1趟操作
    for i in range(len(li) - 1):
        # 每做一趟排序就会有一个数字排好,做i次就有i个数字排好序。做交换的次数是n-i-1次
        for j in range(len(li) - i - 1):
            if li[j] > li[j+1]:
                li[j], li[j+1] = li[j+1], li[j]
    return li


# print(bubble_sort([i for i in random.randrange(0, 1000)]))

# print(len([i for i in range(10)]))
def shuffle1():
    """
    :return: item顺序打乱后的列表
    """
    item = [i for i in range(10000)]
    random.shuffle(item)
    return item


print(bubble_sort(shuffle1()))

 

posted @ 2019-07-08 19:19  平平无奇小辣鸡  阅读(100)  评论(0)    收藏  举报