CLRS (Introduction to Algorithms 2nd) reading notes 5
来源:互联网 发布:淘宝企业店铺运营方案 编辑:程序博客网 时间:2024/04/30 12:09
Summer vacation is always pleasant not only because it offers you much entertainment time, but also you can read whatever book you like to learn – CLRS, for example.
This note is the for the first 6 chapter in Part 7 (Chapter 27 to 32). Yes they are more intriguing and of course more abstruse.
Chapter 27 – Sorting network. To me it is more like a VHDL implementation of sorting. It is a new perspective against the traditional serial sorting algorithms.
Chapter 28 – Matrix computation. It is more about numerical linear algebra instead of computer science. Strassen algorithm enhances basic matrix multiplication performance by reducing each iterative step by about 1/8 – using combinations of matrix addition & subtraction to replace one of the 8 matrix multiplication – it was quite shocking because people never thought that it was possible to improve the basic numerical calculation procedures. About linear system solving: LUP-Factorization is the basic numerical method. Essentially it is Gaussian Elimination method – a simple iterative matrix solving method.
Chapter 29 – Linear programming. Essentially it is another form of linear system solving problem – through several transformation, and Gaussian elimination is still useful here. One noticeable issue is that we need a feasible starting guess as the prerequisite of the next iterations. This can be solved by a simple linear transformation.
Chapter 30 – Polynomial and Fourier Transformation. Fourier transformation is the process from continuous signal to a sequence of discretized signals (DFT, there’s CFT that is continuous Fourier transformation) and also backward(DFT^-1). FFT is an effective implementation of Fourier transformation, which takes advantage of complex root properties and divide & conquer strategy. FFT divides each iteration into two parts and in each iteration, due to the symmetry of the unit complex roots (recall the unit complex roots chart in a complex plane), an operation called “butterfly operation” is applied. BTW, FFT is very useful in ocean simulation.
Chapter 31 – Number theory. I think this chapter can be put in a MATHs textbook about number theory. Most of the referenced papers are from MATHs journals / conferences. I think the main reason that this chapter exists is that Cryptology is based on it – like RSA that takes advantage of the extremely difficulty of large prime numbers factorization.
Chapter 32 – String matching. It is not as hard as the chapter mentioned above. Rabin-Karp simplifies the pattern and the sub-strings into number comparisons; finite automation method, as clear as its term; KMP algorithm, makes a significant improvement against the naive match algorithm by investigating more useful hints within each matching attempt (what’s the next reasonable starting offset?). A preprocessing is required – the useful information can be retrieved by a comparison between the pattern and itself.
Obviously things are getting ‘mathematical’ and everything is more abstract and abstruse – the common style of the theoretical textbooks. It is hard to get clear for each MATHS detail in the text. This is also the main source that most complaints originate – Amazon.com, school mates, etc.. I think it requires at least several weeks for each math-based topic (number theory, numerical algebra, etc.) for a more in-depth understanding.
P.S. it is said a book called ‘Algorithms’ from UC-Berkeley is elaborated in a more pleasant way.. hmmm..
- CLRS (Introduction to Algorithms 2nd) reading notes 5
- CLRS(Introduction to Algorithms 2nd) reading notes 1
- CLRS (Introduction to Algorithms 2nd) reading notes 6 – (final for 1st round)
- CLRS (Introduction to Algorithms 2nd) reanding notes 2
- CLRS (Introduction to Algorithms 2nd) reanding notes 3
- CLRS (Introduction to Algorithms 2nd) reanding notes 4
- CLRS 2nd Round - reading notes 1
- 算法导论Introduction to Algorithms(CLRS)
- "Introduction to the Theory of Computation" Reading notes - Ch. 2
- Reading Notes on《Code Complete 2nd》
- "Introduction to the Theory of Computation" Reading notes - Ch. 3
- CLRS 3rd Ch. 27 reading notes
- Reading Notes: The Data Warehouse Toolkit 2nd
- notes reading word smart for the GRE 2nd Edition
- Ex 15.4-5 of introduction to algorithms
- Ex5.1-2 of introduction to algorithms
- About Introduction to Algorithms
- Introduction to Algorithms
- LINQ之Average
- 面向模式的软件架构.第4卷,分布式计算的模式语言(经典POSA系列的第4卷)
- LINQ之Aggregate
- 调整Speak和Microphone音量。判断是否静音
- 调试技术: Linux core dump file
- CLRS (Introduction to Algorithms 2nd) reading notes 5
- LINQ之Join
- 正确的命名方法
- wsdl2java "XXX is referenced but not defined."解决办法
- 关于未知
- 记录一次.net项目的破解过程
- LINQ之Order By
- JS/VBS配合Adodb.Stream处理字节数据/输出二进制文件
- FLASH与ASP通信入门教程(七) 其它通讯方式原理浅谈