• 分治算法


    1、折半搜索算法

    (1)算法代码:

    (2)复杂性分析

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

     

    2、排序问题

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

    (2)合并两个有序组

    (3)归并排序主程序


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

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

    (3)复杂性分析
      

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

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


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


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



  • 相关阅读:
    剑指offer系列40:构建乘积数组
    自学网站
    存储分析--- 转载
    程序员面试宝典第四版
    资源查找
    诗句
    fifo manage
    charlse抓包
    python基础之-----列表list工厂的仓库
    python内置函数积累
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7125942.html
Copyright © 2020-2023  润新知