Python 排序算法

列表排序就是把无序的列表变成有序的列表,Python中内置的是sort()是用C语言写的,速度快,在实际的应用是使用,这里是用Python写排序的算法,仅供学习

冒泡排序

"""
冒泡排序,注意的关键点是有序区和无序区
比较相邻的两个数的大小,如果前面的数比后面的数大,则交换,
交换完一次称为一趟,每一趟的指针:n-i-1(ns是总数,i是趟数),即每一趟遍历的个数
"""
import time
import random as rd


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

    return wrapper


@cal_time
def bubble_sort(li):
    """
    第一层的for循环是趟
    第二层的for循环是每一趟中比较相邻两个数的大小
    :param li:
    :return:
    """
    for i in range(len(li) - 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


"""
冒泡排序的时间测试
"""
# li = [ i for i in range(1000)]
li = list(range(10000))
rd.shuffle(li) # 用shuffle对li洗牌 是直接操作的li

print(bubble_sort(li))

原文地址:https://www.cnblogs.com/Python666/p/7468016.html