常用算法及效率分析
2016-09-29 18:15
106 查看
算法即解决问题的方法,算法的核心就是为了提升性能
so
冒泡排序冒泡一:
选择排序
插入排序
持续整理中。。。
so
冒泡排序冒泡一:
#_*_coding:utf-8_*_ ''' 冒泡排序 ''' 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冒泡2(改进:减少算法执行频度)
#_*_coding:utf-8_*_ ''' 冒泡排序 ''' 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冒泡3(改进:循环条件不要进行运算操作)
#_*_coding:utf-8_*_ ''' 冒泡排序 ''' 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
选择排序
#_*_coding:utf-8_*_ ''' 选择排序: 1.核心原理:每次比较的成果是取出最小值的索引,然后和未排序的第一个值交换顺序(第一次比较,未排序的第一个值的索引就是0) 2.实现:两个for循环,外层循环控制未排序值的比较次数,内层循环控制每次取一个最小的值放左边 ''' 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 res return _wrapper @timer def choice_sort(l): for j in range(len(l)): smallest_index=j for i in range(j,len(l)): if l[i] < l[smallest_index]: smallest_index = i l[j],l[smallest_index]=l[smallest_index],l[j] print(l) choice_sort(l) 运行: the func choice_sort run time is 0.0295298099518
插入排序
#_*_coding:utf-8_*_ ''' 插入排序: 1.核心原理: 2.实现: ''' 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 res return _wrapper @timer def insert_sort(l): for j in range(len(l)): position=j while position > 0 and l[position] < l[position-1]: l[position],l[position-1]=l[position-1],l[position] position-=1 insert_sort(l) 运行: the func insert_sort run time is 0.0595319271088
持续整理中。。。
相关文章推荐
- SQL中char和varchar的效率分析
- GENERATING INTEGER RANDOM NUMBERS(幾種產生隨機數方法的效率分析)
- 网上市场与传统市场的效率水平差异分析
- C++效率分析
- 三种SQL分页法效率分析
- 汉日词典结构的研究(终)---综合效率分析
- 三种SQL分页法效率分析
- 分析in和exists的区别与执行效率的问题
- in和exists的区别与SQL执行效率分析
- [测试分析] for与foreach 执行效率测试结果
- web报表工具的制表效率分析
- 分页代码及相应SQL效率的分析
- PL/SQL数据类型和效率分析
- Hibernate的批量删除的效率分析
- 值交换的两种方法及其效率分析
- Hibernate的批量删除的效率分析
- mysql 分析索引效率
- 完美解决双核运行游戏不稳定问题,并提升XP运行效率正文分析错误
- [测试分析] for与foreach 执行效率测试结果
- CSS对Web页面载入效率的影响分析总结