算法时间复杂度

表示算法的复杂度,常用到 O o Ω Θ 几个符号。

简单说 O(大O ) 表示运行时间的上界(包含等于), o (小o) 类似于O,但不包含等于,Ω表示运行时间的下界(包含等于),  Θ 同时表示运行时间的上界,下界,也就是说该算法的运行时间可以精确描述。

可以认为 O 类似于 ≤ ,o 类似于 <,  Ω 类似于 ≥, Θ类似于=。


冒泡排序的时间复杂度用大O来描述为O(n2) (n2 为最坏情况), 用Ω来描述为 Ω(n) (n 为最好情况),因为O 不等于 Ω, 使用无法用Θ来描述,但是可以说冒泡排序在最坏情况下为 Θ(n2).

堆排序用大O和Ω描述,都是 O(n log n) Ω(n log n), 所以可以用Θ来描述Θ(n log n)。

 


排序算法的稳定性:

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。

 

 

 

 

posted @ 2016-11-01 10:12  echo_2016  阅读(604)  评论(0)    收藏  举报