CLRS (Introduction to Algorithms 2nd) reading notes 5

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..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值