• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

cynchanpin

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

分治算法

1、折半搜索算法

(1)算法代码:

(2)复杂性分析

 不论什么一种以比較为基础的搜索算法。 在最坏情况下所用的时间都不可能低于 (log ) n  。因此,也就不可能存在最坏情况下所需时间比折半搜索数量级还低的算法。

 

2、排序问题

2.1归并排序算法
(1)归并排序算法思想
该算法採用分治方法, 将要排序的数组分成两部分, 先对每部分进行排序,然后将两部分的元素按不降顺序放在一个新数组中。这一过程可能须要多次分解和合并,因此是一个递归过程。

(2)合并两个有序组

(3)归并排序主程序


 该算法的最好、 最坏和平均时间复杂性都是 双界nlog n。

2.2 高速排序算法
(1)划分程序
(2)算法主程序

(3)复杂性分析
  

 高速排序与归并排序具有同样的平均时间复杂性。

但实际表现有所不同,高速排序一般要比归并排序用时少。


注: 在高速排序中。 假设划分元素是随机选取的。 则差点儿能够保证不会出现最坏情况,差点儿都在平均时间内完毕。 


几种排序算法的时间复杂性比較



posted on 2017-07-06 13:54  cynchanpin  阅读(231)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3