CT13算法设计分析.pptVIP

  • 5
  • 0
  • 约4.32千字
  • 约 21页
  • 2017-08-24 发布于安徽
  • 举报
递归vs迭代 递归算法 设计容易 易读 效率略低 迭代算法:用循环 设计困难 有的问题没有直观的迭代算法 效率高 排序问题 给定数据列表,将其数据重新排列,形成一个有序的(递增)列表. 回顾:Python列表类型提供了方法 list.sort() 我们要学的是如何实现这个方法,而不是学会用现成的. 朴素策略:选择排序 每次从剩下的数据中选择最小值输出. 求列表中最小值的算法:参考前面的max算法 def selSort(nums): n = len(nums) for bottom in range(n-1): # 求nums[bottom]..nums[n-1]间的最小值 mp = bottom # 初始bottom为迄今最小 for i in range(bottom+1,n): # 考虑其他值 if nums[i] nums[mp]: mp = i # 新的迄今最小值 nums[bottom], nums[mp] = nums[mp], nums[bottom] 大数据量时效率低. 分而治之:归并排序 数据分成两组或更多组,分别对各组排序,再把已有序的各组归并(merge)成完

文档评论(0)

1亿VIP精品文档

相关文档