? ? 排序與搜索是所有算法中最基礎(chǔ)的算法。排序旱捧,計(jì)算機(jī)中用了sorting這個(gè)詞,而非ordering看彼,因?yàn)閛rdering一詞有太多意義廊佩,用ordering表示排序囚聚,很可能會(huì)導(dǎo)致混淆。比如下面這個(gè)句子:Since only two of our tape drivers were in working order. I was ordered to order more tape units in short order, in order to order the data several orders of magnitude faster. 這段話中order有各種各樣的意思标锄,不禁讓我聯(lián)想到了上海話中“二百二十二”的發(fā)音顽铸,3個(gè)都是二,但3個(gè)發(fā)音都不一樣料皇。
? ? 排序算法雖然是基礎(chǔ)谓松,但包含了非常豐富的內(nèi)容。我覺得他括號(hào)中標(biāo)注的一段話很正確践剂,人們常以為“最基礎(chǔ)的”就是“最容易”的鬼譬,其實(shí)不然。我覺得“最基礎(chǔ)的”應(yīng)該是“最重要”的逊脯,學(xué)習(xí)的過程是雖說通常是由淺入深优质,但是基礎(chǔ)扎實(shí)對(duì)后續(xù)更高層次知識(shí)技能的學(xué)習(xí)是很重要的。我認(rèn)識(shí)的一些優(yōu)秀的程序員军洼,在解決一個(gè)需求時(shí)巩螃,用在“編碼”上的時(shí)間并不是很多,最基礎(chǔ)也是最重要的匕争,是前期把需求和思路理清避乏,最多的時(shí)間是花費(fèi)在此的。在把所有東西都理清了甘桑,編碼時(shí)一氣呵成拍皮,甚至在調(diào)試代碼后,返工的時(shí)間也大大縮減跑杭。
? ? 排序算法有很多铆帽,多了解一些算法的優(yōu)缺點(diǎn),考慮到每種算法的“最差情況”艘蹋,針對(duì)自身面對(duì)情況時(shí)選擇哪種算法效率最高锄贼。這就涉及到了算法的核心--“效率”,所有的算法設(shè)計(jì)的初衷都是為了“更快更有效地解決問題”女阀。因此作者引申出了“動(dòng)態(tài)規(guī)劃法”這樣一個(gè)說法宅荤。作者用了計(jì)算斐波那契數(shù)列的例子,使用函數(shù)的遞歸調(diào)用可以解決這個(gè)問題浸策。但另開兩個(gè)變量冯键,然后使用for循環(huán)計(jì)算,可以提高計(jì)算效率庸汗。面對(duì)同一個(gè)問題惫确,進(jìn)行多種解答的思考;或者面對(duì)相似問題,不同解決方法優(yōu)劣勢的辨析改化。要培養(yǎng)這種能力掩蛤,我覺得平時(shí)在工作學(xué)習(xí)中多留個(gè)心眼,多考慮考慮各種解決方法陈肛。雖說很多國內(nèi)的開發(fā)環(huán)境中揍鸟,為了完成不斷的需求,解決完問題再回頭思考第二種解決方法句旱,實(shí)際上挺困難的阳藻,那么多閱讀別人寫的代碼也是一種不錯(cuò)的提高途徑。