❶ 為什麼《演算法導論》中的數組序號是從1開始的
c語言下標從零開始是個錯誤,並且 index 也是一個有誤導性的名詞,它表示的是偏移量,明明應該用 offset。
然後 c 的徒子徒孫都學了它,導致現在很多人都誤以為下標應該從 0 開始。
早期蠻荒時代,很多東西都不科學,演算法導論作者致力於與落後文明作斗爭,然而卻遭到了樓主你的不理解,實乃編程屆一大憾事。
我再說一遍,C 是結構化的匯編,下標基 0 是受到了 PDP-11 指令集的影響,更老的語言(比如 Fortran)都是基 1 的。
另外用 0/非 0 代表 false/true 也是 PDP-11 中 TST 指令和 Z 位的行為。
可能是這本書強調演算法的求學思想,所以從一更加符合數學的數組規定。
但是編程的時候,指針這個東西會經常用到,如果用a(o)作為第一個元素 那麼*a+n就等同於a(n) 比較方便
演算法導論上的這個問題呢,我覺得我比較同意樓上的看法,這個書上面的很多的程序並不是可以敲上去直接運行的,他只是偽代碼,思想而已,給人看的,人類的普遍思維是從1開始,那麼書頁就是從1開始了
說編程語言是給機器看而偽代碼是給人看的簡直是逗大家笑吧...編程語言設計出來就是給人看的....
另外從0開始在很多方便都極好....我覺得寫多代碼都能體會到吧..
幫算導洗地:
演算法導論通篇用的是偽代碼 是給人類閱讀理解的 不是設計給機器去運行的
而絕大多數情況下, index 從 1 開始更符合人類直覺(如果你對這點有異議請參考的答案 )
但少數情況下, index 從 0 開始更符合人類直覺。例如書中 hashing 還有 FFT 那塊內容, index 是從 0 開始的。
其實寫幾天 Pascal 你就適應啦。。
❷ 求發我《演算法導論》的pdf,中文版,第三版;只要【中文版】【第三版】
演算法導論是學習演算法的經典教材,在有關演算法的書中,有一些敘述非常嚴謹,但不夠全面;另一些涉及了大量的題材,但又缺乏嚴謹性。本書將嚴謹性和全面性融為一體,深入討論各類演算法,並著力使這些演算法的設計和分析能為各個層次的讀者接受。下載鏈接網頁鏈接,內含有高清帶書簽pdf,並且有課後部分習題答案,需要可以參考一下
❸ 紅黑樹如何執行修改操作
紅黑樹解釋起來比較麻煩,裡面有一些樹節點的旋轉工作,我有編好的程序,也是搞了n多天才搞定的。你先看看(代碼是C++的)。裡面實現了其節點插入、刪除、遍歷、前驅、後繼等介面。
程序太長,沒法拷貝過來,到我的博客去看吧。
如果程序沒法理解,請查看麻省理工的《演算法導論》中文版關於二叉查找樹和紅黑樹的章節,裡面有詳細介紹和很多偽代碼,我的代碼就是參考偽代碼寫出來的。
=============最新回復==============
不知道你所說的修改是什麼意思,是修改衛星數據還是修改key值?
如果是修改衛星數據,那麼不需要改動樹結構;
如果是修改key值,那麼愚以為,刪除和插入兩個操作相加是最好的辦法,因為即使兩者操作疊加,時間復雜度也不會超過log(n)
麻省理工的《演算法導論》中文版卓越網上有熱賣哦:-)
❹ 演算法導論 習題
將集合排序,復雜度O(nlogn)。
從小到大遍歷整個數組的每個數i,計算出X-i是否存在,復雜度O(n)。
於是就是復雜度O(nlogn) + O(n) = O(nlogn)
❺ 求演算法導論第三版中文高清版 pdf
書籍已經上傳了,
這個就是第三版的演算法導論,
下了後用rar解壓,
確認無誤麻煩採納一下.