今天在學習《大話資料結構》的過程中,被乙個小問題困擾了很久,最後才得出結論應該是書上寫錯了。
可以看到在第乙個for語句後面的注釋裡作者解釋道「若flag為true則退出迴圈」,但實際上,在i小於表長度時,機器在執行for的迴圈時,根據**的順序先將flag置為假,此時就已經不滿足第乙個for的迴圈條件了。然而該迴圈還沒執行完,**繼續往下執行,又遇到了第二個for迴圈,產生兩種結果:(1)假如第二個for中產生了交換,那麼同時flag也被置真了,第乙個for又可以開心地往下執行了;(2)假如第二個for中沒有產生交換,那麼flag仍舊是假的,此時跳出第乙個迴圈,宣告排序完成。
因此,第乙個for後的注釋應該是flag為false才推出迴圈才對
day 1《大話資料結構》
線性表 list 零個或多個資料元素的有限序列 線性表的抽象資料型別 adt 線性表 list data operation initlist l 初始化操作,建立乙個空的線性表l.listempty l 若線性表為空,返回true,否則返回 false.clearlist l 將線性表清空。get...
《大話資料結構》 學習筆記2
第二章 演算法 2.2 資料結構 與 演算法的關係 簡單的說 資料結構 與 演算法 的關係 即 梁山伯 與 祝英台 的關係 把其中一方隔離出來唱獨角戲.沒意義!2.3 兩種演算法的比較 現寫乙個求1 2 3 100結果的程式,你應該怎麼寫呢?大多數人馬上寫出下面的c語言 int i,sum 0,n ...
《大話資料結構》學習筆記2
演算法是解決特定問題求解步驟的描述,在計算機表現為指令的有限序列,其中每條指令表現為乙個或多個操作。序號正確性的四個層次 目前以第三層為正確的標準 1演算法程式的語法正確 2合法的輸入可以產生滿足要求的輸出結果 3非法的輸入能夠得到滿足規格說明的結果 4對於精心選擇的測試資料也能夠有滿足要求的輸出結...