CSDN博客

img yuanqingfei

最常见的一些算法复杂度

发表于2004/6/29 16:39:00  1557人阅读

分类: 〖Matlab〗 ☆Academic Endless☆

这里总结一些最常见计算的计算复杂度(常见意义上的)

矩阵相乘:

 

§       最原始的方法:2*n^3+n^2=O(N^3)

§       Strassen算法:O(N^(Log2^7))

§       Winograd&Coppersmith:O(N^2.37)


矩阵向量相乘:

 

§       原始方法:O(N^2)

矩阵方程求解:

 

§       高斯消去:O(N^3) [正向迭代:O(N^3),反向迭代:O(N^2)]

§       完全矩阵LU分解:O(N^2) [正向迭代:O(N^2),反向迭代:O(N^2)]

§       带状矩阵LU分解:O(M*N) (M为带宽)

§       三对角阵LU分解:O(N)

矩阵求逆:

 

§       与矩阵相乘类似(三种结果)

有限元法:

 

§       二维有限元LU分解:O(N^(3/2))

§       三维有限元LU分解:O(N^2)

§       二、三维有限元迭代算法(CG/BCG)O(N)

时域有限差分:

 

§       二维FDTD(确定时间T)O(N^(3/2))

§       三维FDTD(确定时间T)O(N^(4/3))

排序:

 

§       quicksortO(N*Log(N))

§       bucketsort:O(N) (最好的情况)


FFT
O(N*Log(N))
快速多极子FMM O(N*Log(N))

大多基于二叉树的算法都可以优化到O(N*Log(N))

[有待补充]

参考文献:
GH Golub/van Loan "Matrix Computations", 1989
PC Hansen "Rank-Deficient and Discreate Ill-Posed Problems", 1998
WC Chew "Waves and Fields in inhomogeneous Media", 1990

多谢kimbtsing@yahoo.com.cn的建议,发现在computational cpxFMM的计算复杂度是错误的,应该是O(N^1.5),而MLFMA(多层快速多极子)才是O(NLog(N))
文献参见原文的跟贴.

0 0

相关博文

我的热门文章

img
取 消
img