算法:即解决问题的思路(或者说解决问题的步骤)
冒泡排序介绍:
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。
冒泡一(初级一版):
#_*_coding:utf-8_*_
#author:rianley
'''
冒泡排序
'''
import random,time
l=range(1000)
print(l)
random.shuffle(l)
print(l)
def timer(func):
def _wrapper(*args,**kwargs):
start_time=time.time()
res=func(*args,**kwargs)
stop_time=time.time()
print('the func %s run time is %s' %(func,stop_time-start_time))
return _wrapper
@timer
def bubble_sort(l):
for j in reversed(range(len(l))):
for i in range(len(l)-1):
if l[i] > l[i+1]:
tmp=l[i]
l[i]=l[i+1]
l[i+1]=tmp
#l[i],l[i+1]=l[i+1],l[i]
print(l)
bubble_sort(l)
运行:
the func bubble_sort run time is 0.110095024109
冒泡排序(改进:减少算法执行频度)
#_*_coding:utf-8_*_
# author: rianley
'''
冒泡排序
'''
import random,time
l=range(1000)
print(l)
random.shuffle(l)
print(l)
def timer(func):
def _wrapper(*args,**kwargs):
start_time=time.time()
res=func(*args,**kwargs)
stop_time=time.time()
print('the func %s run time is %s' %(func.__name__,stop_time-start_time))
return _wrapper
@timer
def bubble_sort(l):
for j in reversed(range(len(l))):
for i in range(len(l)-1):
if l[i] > l[i+1]:
l[i],l[i+1]=l[i+1],l[i]
print(l)
bubble_sort(l)
运行:
the func bubble_sort run time is 0.105001926422
冒泡排序(改进:循环条件不要进行运算操作)
#_*_coding:utf-8_*_
#author:rianley
'''
冒泡排序
'''
import random,time
l=range(1000)
print(l)
random.shuffle(l)
print(l)
def timer(func):
def _wrapper(*args,**kwargs):
start_time=time.time()
res=func(*args,**kwargs)
stop_time=time.time()
print('the func %s run time is %s' %(func.__name__,stop_time-start_time))
return res
return _wrapper
@timer
def bubble_sort(l):
l1 = reversed(range(len(l)))
l2 = range(len(l) - 1)
for j in l1:
for i in l2:
if l[i] > l[i+1]:
l[i],l[i+1]=l[i+1],l[i]
print(l)
bubble_sort(l)
运行:
the func bubble_sort run time is 0.0980820655823
持续更新中......
欢迎加入程序员自我修养群:687226766
版权声明:原创作品,如需转载,请注明出处。否则将追究法律责任