列表排序就是把无序的列表变成有序的列表,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))