代码改变世界

[数据结构和算法]算法基本概念

2014-05-22 02:07  hellenism  阅读(391)  评论(0编辑  收藏  举报

算法基本概念:

 

算法:
用来对数据的操作作描述,是对问题求解的步骤的描述。是一系列将输入转为输出的计算步骤

 

算法复杂度:分为时间复杂度和空间复杂度
时间复杂度:算法中所有语句的频度之和用T(n)表示,记为T(n) = O(n)

 

常见时间复杂度递增次序
常数 O(1) , 对数阶O(log2^n) , 线性阶O(n) , 线形对数阶O(nlog2^n),平方阶O(n^2),立方阶O(n^3),指数阶O(2^n),O(n!),O(n^n)
当n值增大,算法时间复杂度即变大,执行效率变低

 

最坏时间复杂度:
最坏情况下的时间复杂度称为最坏时间复杂度,一般讨论的都是最坏时间复杂度

 

平均时间复杂度:
指所有可能的输入实例均以等概率出现的情况下,算法执行的时间复杂度

 

算法空间复杂度:
指在算法执行过程中,除代码本身和输入输出数据所占的空间外,临时开辟的存储空间。用S(n)表示,记为S(n) = O(1)

 

算法的时间复杂度和空间复杂度合称为算法的复杂度

 


 

常见算法:
一.排序算法:
  1.插入排序
    a.直接插入排序
    b.折半插入排序

  2.交换排序
    a.冒泡排序
    b.快速排序

  3.选择排序
    a.直接选择排序

  4.归并排序


二.插入算法: