zoukankan      html  css  js  c++  java
  • 分治算法

    1、折半搜索算法

    (1)算法代码:

    (2)复杂性分析

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

     

    2、排序问题

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

    (2)合并两个有序组

    (3)归并排序主程序


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

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

    (3)复杂性分析
      

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

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


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


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



  • 相关阅读:
    POJ
    hdu 5652
    CodeForces
    #6285. 数列分块入门 9
    #6284. 数列分块入门 8
    #6283. 数列分块入门 7
    #6282. 数列分块入门 6
    #6280. 数列分块入门 4 #6281. 数列分块入门 5
    #6278. 数列分块入门 2和#6278. 数列分块入门 3
    spark-sklearn TypeError: 'JavaPackage' object is not callable
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7125942.html
Copyright © 2011-2022 走看看