關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
程序設(shè)計(jì)基礎(chǔ)(第4版)
本書(shū)以程序設(shè)計(jì)的分析問(wèn)題和解決問(wèn)題為重點(diǎn),講授在C/C 語(yǔ)言環(huán)境下程序設(shè)計(jì)的解題思路、算法設(shè)計(jì)和程序?qū)崿F(xiàn),可幫助讀者提高編程能力和上機(jī)解題能力。全書(shū)語(yǔ)言簡(jiǎn)潔,示例豐富,深入淺出地引導(dǎo)讀者理性思維和理性實(shí)踐,章節(jié)結(jié)構(gòu)安排合理,教學(xué)方法引人入勝,便于讀者自學(xué)。
本書(shū)可作為高等院校計(jì)算機(jī)相關(guān)專(zhuān)業(yè)程序設(shè)計(jì)課程的教材,亦可供從事計(jì)算機(jī)、自動(dòng)化及其他相關(guān)領(lǐng)域的科研技術(shù)人員參考。
1. 強(qiáng)調(diào)轉(zhuǎn)變觀念,以學(xué)生為中心,安排教學(xué)首先考慮培養(yǎng)目標(biāo)、學(xué)生的認(rèn)知規(guī)律和學(xué)習(xí)特點(diǎn)。2. 強(qiáng)化實(shí)踐,讓學(xué)生在理論指導(dǎo)下動(dòng)手動(dòng)腦,更多地上機(jī)編程,鼓勵(lì)和引導(dǎo)探索式的學(xué)習(xí);以任務(wù)驅(qū)動(dòng)方式,通過(guò)示例講授程序設(shè)計(jì)的基本概念和方法。3. 重點(diǎn)放在思路、算法、編程構(gòu)思和程序?qū)崿F(xiàn)上,訓(xùn)練學(xué)生分析問(wèn)題和解決問(wèn)題的能力;注重培養(yǎng)學(xué)生良好的編程習(xí)慣。
第4版前言本書(shū)第3版是2010年11月完成的。六年來(lái),我們?cè)谑褂帽窘滩牡倪^(guò)程中,認(rèn)真聽(tīng)取學(xué)生反饋意見(jiàn),不斷改進(jìn)教學(xué)方法、完善教學(xué)環(huán)節(jié)、調(diào)整教學(xué)次序,使得課程學(xué)習(xí)效果有了進(jìn)一步提升。為及時(shí)反映課內(nèi)教學(xué)成果,我們又在第3版基礎(chǔ)上對(duì)文字教材進(jìn)行了修訂,包括調(diào)整了若干章節(jié)的次序、補(bǔ)充了部分章節(jié)的課后習(xí)題、修改了一些地方的文字錯(cuò)誤和代碼錯(cuò)誤等等。我們還系統(tǒng)梳理了第3版教材中的所有示例源程序,調(diào)整了所有代碼中的注釋?zhuān)宄嗽诓糠执a中發(fā)現(xiàn)的問(wèn)題,并用最新的編譯環(huán)境進(jìn)行了編譯測(cè)試。希望本次修訂能為計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)者提供一本內(nèi)容與時(shí)俱進(jìn)、更加易學(xué)易用的教材。由于時(shí)間倉(cāng)促,作者水平有限,書(shū)中難免還有紕漏,歡迎廣大讀者朋友多提寶貴意見(jiàn)! 吳文虎,徐明星,鄔曉鈞2017年1月 第3版前言本書(shū)的第1版是2003年9月完成的,經(jīng)過(guò)一年的試用,于2004年9月發(fā)行了第2版。 學(xué)生普遍反映,這本教材思路清晰,重點(diǎn)突出,易學(xué)易用,特別是強(qiáng)化實(shí)踐教學(xué)思想,使學(xué)生既動(dòng)手又動(dòng)腦,學(xué)會(huì)了編程的基本思路和方法,受到了學(xué)生的好評(píng)。從第2版的使用到現(xiàn)在又經(jīng)過(guò)了6年時(shí)間,這期間我們?cè)趯?shí)踐中認(rèn)真聽(tīng)取學(xué)生的反饋意見(jiàn),不斷改進(jìn)教學(xué)方法,與時(shí)俱進(jìn)地充實(shí)教學(xué)內(nèi)容,特別是注重將講課內(nèi)容與作業(yè)提交系統(tǒng)形成一個(gè)有機(jī)的整體;使學(xué)生的學(xué)習(xí)更容易做到理性思維和理性實(shí)踐,以期達(dá)到進(jìn)一步提高教學(xué)質(zhì)量的目標(biāo)。為此,我們又在第2版的基礎(chǔ)上調(diào)整了部分章節(jié),增加了一些常用的重要算法及程序?qū)崿F(xiàn),形成了現(xiàn)在的第3版。從教材改版的目標(biāo)而言,我們認(rèn)為沒(méi)有最好,只有更好。 吳文虎 徐明星2010年9月 第2版前言本書(shū)第1版是2003年9月出版的,經(jīng)過(guò)一年的使用后,學(xué)生普遍反映本書(shū)重點(diǎn)突出,易學(xué)易用。但作為教師,我感到還要不斷地研究教學(xué)規(guī)律,化解教學(xué)中的難點(diǎn)。為此,我又重新審閱了全書(shū),在文字上做了調(diào)整,內(nèi)容上做了修正,力求講得明白透徹。在教學(xué)中發(fā)現(xiàn),初學(xué)者往往要花費(fèi)很多的時(shí)間在程序調(diào)試上,效率很低。實(shí)際上程序調(diào)試已成為學(xué)生編程實(shí)踐中的攔路虎。所以,配合本書(shū),又專(zhuān)門(mén)編著了《程序設(shè)計(jì)基礎(chǔ)(第2版)習(xí)題解答與上機(jī)指導(dǎo)》,還準(zhǔn)備上小班輔導(dǎo)課讓學(xué)生學(xué)會(huì)調(diào)試程序的基本方法。我認(rèn)為這可能是進(jìn)一步提高該課教學(xué)質(zhì)量的一個(gè)關(guān)鍵。 吳文虎2004年8月 第1版前言計(jì)算機(jī)語(yǔ)言與程序設(shè)計(jì)是一門(mén)十分重要的基礎(chǔ)課程。該課長(zhǎng)期沿襲著這樣的教學(xué)模式:過(guò)于注重語(yǔ)句、語(yǔ)法和一些細(xì)節(jié),基本上是以高級(jí)語(yǔ)言自身的體系為脈絡(luò)展開(kāi)的,沒(méi)有把邏輯與編程解題思路放在主體地位上;對(duì)如何分析問(wèn)題和解決問(wèn)題講得不夠,對(duì)學(xué)生編程的能力、上機(jī)解題的能力訓(xùn)練不夠。這樣就給后續(xù)課程及研究生階段的課題研究留下了缺憾。很多學(xué)生在學(xué)習(xí)這門(mén)課時(shí)感到枯燥難學(xué),學(xué)過(guò)之后,不能用來(lái)解決實(shí)際問(wèn)題。我個(gè)人的經(jīng)歷有些不同,除了學(xué)校給我安排的教學(xué)和科研任務(wù)之外,20年來(lái)我一直指導(dǎo)初中學(xué)生、高中學(xué)生和大學(xué)生參加有關(guān)計(jì)算機(jī)的各種比賽,包括國(guó)際信息學(xué)奧林匹克和ACM世界大學(xué)生程序設(shè)計(jì)競(jìng)賽,通過(guò)對(duì)這些學(xué)生成長(zhǎng)道路的反復(fù)思考和研究,使我感到很有必要改變我們的課程教學(xué)模式,用新的教學(xué)理念和方法培養(yǎng)一流人才。對(duì)這一問(wèn)題,我和有關(guān)領(lǐng)導(dǎo)談了自己的想法,他們非常支持。從2001年9月起,我接受了程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)任務(wù),并開(kāi)始對(duì)該課程教學(xué)模式進(jìn)行改革:以強(qiáng)調(diào)動(dòng)手實(shí)踐上機(jī)編程為切入點(diǎn);以任務(wù)驅(qū)動(dòng)方式,通過(guò)實(shí)例講授程序設(shè)計(jì)的基本概念和基本方法;重點(diǎn)放在思路上,即在C/C 語(yǔ)言的環(huán)境下,針對(duì)問(wèn)題進(jìn)行分析,構(gòu)建數(shù)學(xué)模型,理出算法并編程實(shí)現(xiàn)。同時(shí),要求學(xué)生養(yǎng)成良好的編程習(xí)慣;在教學(xué)過(guò)程中培養(yǎng)學(xué)生的思維能力和動(dòng)手能力,鼓勵(lì)學(xué)生探索、研究和創(chuàng)新。在指導(dǎo)思想上,強(qiáng)調(diào)轉(zhuǎn)變觀念,以學(xué)生為中心,將學(xué)生視為教學(xué)的主體,安排教學(xué)首先考慮培養(yǎng)目標(biāo)、學(xué)生的認(rèn)知規(guī)律和學(xué)習(xí)特點(diǎn)。在教學(xué)的每一個(gè)環(huán)節(jié),顧及學(xué)生的實(shí)際情況,多想怎樣才能有利于調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,引導(dǎo)學(xué)生主動(dòng)學(xué)習(xí)。具體的改革措施主要針對(duì)兩個(gè)方面:教學(xué)模式和對(duì)學(xué)生學(xué)習(xí)的評(píng)價(jià)方式。對(duì)教學(xué)模式的改革提出強(qiáng)化實(shí)踐。明確告訴學(xué)生:程序設(shè)計(jì)課是高強(qiáng)度的腦力勞動(dòng),不是聽(tīng)會(huì)的,也不是看會(huì)的,而是自己練會(huì)的。只有讓學(xué)生動(dòng)手,他才會(huì)有成就感,進(jìn)而對(duì)課程產(chǎn)生興趣,學(xué)起來(lái)才比較從容。因此,我們的基本思想是在理論指導(dǎo)下,讓學(xué)生動(dòng)手、動(dòng)腦,更多地上機(jī)實(shí)踐。學(xué)生只有在編寫(xiě)大量程序之后,才能獲得真知灼見(jiàn),感到運(yùn)用自如。注重學(xué)生動(dòng)手能力的培養(yǎng)是這門(mén)課和以往課程最大的不同之處。提出理性思維和理性實(shí)踐。按照建構(gòu)主義的學(xué)習(xí)理論,學(xué)生作為學(xué)習(xí)的主體在與客觀環(huán)境(指所學(xué)內(nèi)容)的交互過(guò)程中構(gòu)建自己的知識(shí)結(jié)構(gòu)。教師應(yīng)引導(dǎo)學(xué)生在解題編程的實(shí)踐中探索其中帶規(guī)律性的認(rèn)識(shí),將感性認(rèn)識(shí)升華到理性高度,只有這樣,學(xué)生才能舉一 反三。提出授課的原則是要學(xué)生抱西瓜而不是撿芝麻,重點(diǎn)放在思路、算法、編程構(gòu)思和程序?qū)崿F(xiàn)上。語(yǔ)句只是表達(dá)工具,講一些最主要的,對(duì)細(xì)枝末節(jié)的東西根本不講。要求學(xué)生在課堂上積極思考,盡量當(dāng)堂學(xué)懂。突出上機(jī)訓(xùn)練,在編寫(xiě)程序的過(guò)程中,使學(xué)生提高利用計(jì)算機(jī)這個(gè)智力工具來(lái)分析問(wèn)題和解決問(wèn)題的能力。提出要讓學(xué)生養(yǎng)成良好的編程習(xí)慣。我們?cè)谂c國(guó)內(nèi)一些軟件公司的技術(shù)人員座談時(shí)了解到,中國(guó)軟件之所以上不去的原因之一就有習(xí)慣問(wèn)題。印度十個(gè)人編程,會(huì)編出一樣的東西,而我們十個(gè)人編程可能會(huì)有十種風(fēng)格。因?yàn)槲覀兒雎粤艘粋(gè)重要問(wèn)題,即顧客的感受,程序的編寫(xiě)是給別人看的,而不是只給我們自己看的。再者,盡管我們學(xué)生模型構(gòu)思做得很快,但編程的基本功不扎實(shí),往往到了關(guān)鍵的時(shí)候,就出問(wèn)題。鑒于此,在課上我們強(qiáng)調(diào)程序的可讀性、規(guī)范性;要求變量必須加注釋?zhuān)怀绦驑?gòu)思要有說(shuō)明;學(xué)會(huì)如何調(diào)試程序;盡量使程序優(yōu)化;還要求對(duì)程序的運(yùn)行結(jié)果做正確與否的判斷和分析。提出自學(xué)、動(dòng)手、應(yīng)用、上網(wǎng)的學(xué)習(xí)習(xí)慣。我認(rèn)為在本科階段就應(yīng)該注意培養(yǎng)學(xué)生的自學(xué)能力。很多東西完全是可以自學(xué)的,尤其是計(jì)算機(jī)。計(jì)算機(jī)是實(shí)踐性極強(qiáng)的學(xué)科,所學(xué)的內(nèi)容和要實(shí)踐的東西是一個(gè)整體,因此可以自己動(dòng)手來(lái)學(xué),書(shū)上看不懂的在機(jī)器上動(dòng)手試試,往往就弄懂了。上網(wǎng)是指充分利用網(wǎng)絡(luò)平臺(tái),提高獲取信息、處理信息和交流信息的能力。對(duì)學(xué)生學(xué)習(xí)評(píng)價(jià)方式的改革考試是檢驗(yàn)學(xué)生學(xué)習(xí)效果、評(píng)價(jià)學(xué)生學(xué)習(xí)業(yè)績(jī)的重要環(huán)節(jié)?荚囎鳛橹笓]棒對(duì)教學(xué)目標(biāo)、教學(xué)過(guò)程有著相當(dāng)大的影響。我一直在思考如何進(jìn)行考試改革,如何借助考試環(huán)節(jié)調(diào)動(dòng)和激發(fā)學(xué)生自主學(xué)習(xí)的積極性、創(chuàng)造性等問(wèn)題。開(kāi)學(xué)之初,我就向?qū)W生宣布考試方式上機(jī)解題,判分也是由計(jì)算機(jī)來(lái)完成,對(duì)就是對(duì),錯(cuò)就是錯(cuò),不紙上談兵,不考筆試,不考死記硬背的東西。我們平時(shí)比較注意對(duì)學(xué)生學(xué)習(xí)方式的引導(dǎo),讓學(xué)生明白:理論很重要,要在理論指導(dǎo)下,動(dòng)手動(dòng)腦、有條理地進(jìn)行實(shí)踐。實(shí)踐才能出真知,動(dòng)手才能學(xué)到真本事。我們還將一些有較好程序設(shè)計(jì)基礎(chǔ)的學(xué)生組織起來(lái),因材施教,引導(dǎo)他們進(jìn)行探索式的研究性學(xué)習(xí),讓他們繼續(xù)提高。同時(shí)讓他們?cè)诎嗌蠐?dān)任小教員,幫助同學(xué)學(xué)習(xí)。這樣做行不行呢?經(jīng)過(guò)兩年的教學(xué)實(shí)踐,這門(mén)課取得了很好的教學(xué)效果,學(xué)生給以很高的評(píng)價(jià)。學(xué)生點(diǎn)評(píng)為:授課方式獨(dú)特新穎,深入淺出,啟發(fā)式教學(xué),激發(fā)學(xué)生興趣,調(diào)動(dòng)學(xué)生的積極性,有助于學(xué)生獨(dú)立思考能力的提高。(引自清華大學(xué)2001年下半年教學(xué)評(píng)估結(jié)果查詢(xún))參加小教員工作的學(xué)生,提高了責(zé)任感,培養(yǎng)了敬業(yè)精神。他們的水平和能力也有相應(yīng)的提高,其中三名同學(xué)代表清華大學(xué)參加了2002年ACM世界大學(xué)生程序設(shè)計(jì)競(jìng)賽的分區(qū)賽和總決賽,取得了世界總排名第四的好成績(jī)(2300支隊(duì)伍參加區(qū)域賽,60支隊(duì)伍參加總決賽)。2002年5月,在北京市高校計(jì)算機(jī)基礎(chǔ)教育研討會(huì)上,我曾應(yīng)約就此課程的教學(xué)改革作了專(zhuān)題報(bào)告,受到了與會(huì)專(zhuān)家和老師們的好評(píng),他們認(rèn)為這是非常好的新的教學(xué)范例。改革是沒(méi)有止境的。經(jīng)過(guò)兩年的實(shí)踐,我感到在一些方面還要進(jìn)一步努力,還有許多工作要做:要進(jìn)一步加大學(xué)生訓(xùn)練環(huán)節(jié)的力度;要加強(qiáng)對(duì)基礎(chǔ)較差學(xué)生的輔導(dǎo);要建立一個(gè)因材施教的機(jī)制,創(chuàng)造條件,讓學(xué)生能有更廣闊的發(fā)展空間;要建立平時(shí)的督促機(jī)制,讓每一個(gè)學(xué)生真正落實(shí)動(dòng)手實(shí)踐;要考慮與后續(xù)課程的銜接,F(xiàn)在大家看到的這本教材就是在上述的背景下,整理了課上的教案,補(bǔ)充了一些內(nèi)容寫(xiě)出來(lái)的。在教材成文的過(guò)程中,我的同事和學(xué)生(博士生)起了很大作用。他們提出了很好的建議,對(duì)一些算法進(jìn)行了研究和整理,特別是對(duì)全書(shū)整體上的結(jié)構(gòu)進(jìn)行了縝密的 推敲。從一種體系轉(zhuǎn)變?yōu)楝F(xiàn)在的體系是有相當(dāng)大的難度的,也有風(fēng)險(xiǎn),學(xué)生愛(ài)不愛(ài)這樣學(xué),能不能學(xué)到真本事,是不是能夠達(dá)到預(yù)期的教學(xué)目標(biāo),都會(huì)存在問(wèn)題。但我以為,要改革就要知難而進(jìn),不付諸努力就收到良好的教學(xué)效果是不可能的。目前這本教材可能存在很多不足,但是我們有這種思想準(zhǔn)備,在教學(xué)實(shí)踐中,多聽(tīng)取學(xué)生的反饋意見(jiàn),不斷修改,使之日臻完善。我們相信,恒心與虛心能夠成就一本好的 教材。參加本書(shū)研究、撰寫(xiě)工作的還有徐明星(參加本書(shū)總體策劃與章節(jié)編排)、鄔曉鈞(撰寫(xiě)第9、10、13章及附錄)和李凈(進(jìn)行教案整理、圖文設(shè)計(jì)),此外,趙強(qiáng)工程師和楊非同學(xué)也做了大量的書(shū)稿整理和成文工作,吳根清、孫輝、劉建、劉林泉、鄧菁、陳德鋒、侯啟明等同學(xué)看了本書(shū)的第一稿,提出了寶貴的修改意見(jiàn)。在此一并感謝他們所付出的 勞動(dòng)。由于時(shí)間倉(cāng)促,作者水平有限,書(shū)中難免有紕漏,歡迎讀者多提寶貴意見(jiàn)。 吳文虎2003年9月 目錄 第1章 緒論 1 第2章 編程準(zhǔn)備 4 2.1 程序編寫(xiě) 4 2.1.1 用Visual C 6.0編寫(xiě)程序 4 2.1.2 使用Dev-C 開(kāi)發(fā)程序 8 2.2 程序代碼及說(shuō)明 14 2.3 輸出流對(duì)象cout 15 2.4 程序注釋 16 2.5 算術(shù)運(yùn)算符 16 2.6 數(shù)學(xué)函數(shù) 17 2.7 小結(jié) 17 習(xí)題 17 第3章 代數(shù)思維與計(jì)算機(jī)解題 19 3.1 程序的基本結(jié)構(gòu) 19 3.2 變量與數(shù)據(jù)類(lèi)型 21 3.2.1 變量的基本概念 21 3.2.2 數(shù)據(jù)類(lèi)型與變量的地址空間 22 3.3 定義變量和賦初值 22 3.4 變量賦值 23 3.4.1 賦值符號(hào)與賦值表達(dá)式 23 3.4.2 變量賦值的5要素 24 3.5 指針變量 25 3.5.1 指針定義與初始化 25 3.5.2 指針賦值 26 3.5.3 在賦值語(yǔ)句中使用間接訪問(wèn)運(yùn)算符 26 3.6 小結(jié) 27 習(xí)題 28 第4章 邏輯思維與計(jì)算機(jī)解題 29 4.1 關(guān)系運(yùn)算和關(guān)系表達(dá)式 30 4.1.1 關(guān)系運(yùn)算符 30 4.1.2 關(guān)系表達(dá)式的一般格式 30 4.1.3 將是否寫(xiě)成關(guān)系表達(dá)式 30 4.2 枚舉法的思路 31 4.3 循環(huán)結(jié)構(gòu) 33 4.3.1 使用循環(huán)結(jié)構(gòu)的部分程序 33 4.3.2 for語(yǔ)句的格式和執(zhí)行過(guò)程 33 4.3.3 使用for循環(huán)解題實(shí)例 34 4.3.4 for循環(huán)的程序框圖 36 4.4 分支結(jié)構(gòu) 36 4.4.1 if語(yǔ)句的格式 37 4.4.2 分支結(jié)構(gòu)的實(shí)例 38 4.5 任務(wù)4.1的程序框圖 39 4.6 任務(wù)4.1的參考程序 40 4.7 邏輯問(wèn)題及其解法 41 4.7.1 邏輯運(yùn)算符與邏輯表達(dá)式 42 4.7.2 邏輯問(wèn)題的解題思路 43 4.7.3 任務(wù)4.2的參考程序 47 4.8 小結(jié) 48 課后閱讀材料 48 習(xí)題 53 第5章 函數(shù)思維與模塊化設(shè)計(jì) 55 5.1 函數(shù) 55 5.1.1 函數(shù)的說(shuō)明 56 5.1.2 函數(shù)的定義 56 5.1.3 函數(shù)的返回值 56 5.1.4 函數(shù)的調(diào)用 57 5.1.5 形式參數(shù)和實(shí)在參數(shù) 57 5.1.6 調(diào)用和返回 58 5.1.7 帶自定義函數(shù)的程序設(shè)計(jì) 58 5.2 編程實(shí)例1 60 5.3 編程實(shí)例2 61 5.4 幾種參數(shù)傳遞方式的比較 63 5.5 小結(jié) 66 習(xí)題 66 第6章 數(shù)據(jù)的組織與處理(1) 數(shù)組 69 6.1 數(shù)組 69 6.1.1 一維數(shù)組的定義 71 6.1.2 數(shù)組初始化 71 6.1.3 字符數(shù)組的定義、初始化和賦值 72 6.1.4 數(shù)組與指針 75 6.2 篩法 77 6.3 線(xiàn)性查找與折半查找 78 6.4 冒泡排序法 80 6.5 遞推 82 6.5.1 遞推數(shù)列的定義 82 6.5.2 遞推算法的程序?qū)崿F(xiàn) 83 6.6 字符數(shù)組應(yīng)用 86 6.7 函數(shù)跳轉(zhuǎn)表 91 6.8 二維數(shù)組 93 6.8.1 二維數(shù)組的定義 94 6.8.2 二維數(shù)組的初始化 95 6.8.3 二維數(shù)組中的元素存放順序 95 6.9 小結(jié) 97 課后閱讀材料 98 習(xí)題 102 第7章 數(shù)據(jù)的組織與處理(2) 結(jié)構(gòu) 105 7.1 結(jié)構(gòu)與結(jié)構(gòu)數(shù)組 105 7.1.1 結(jié)構(gòu)體類(lèi)型的定義 105 7.1.2 結(jié)構(gòu)體變量的定義和引用 106 7.1.3 結(jié)構(gòu)體變量的初始化 107 7.1.4 結(jié)構(gòu)數(shù)組 108 7.2 指針和結(jié)構(gòu) 110 7.3 鏈表 111 7.3.1 建立鏈表的過(guò)程 112 7.3.2 鏈表結(jié)點(diǎn)的插入與刪除 116 7.3.3 循環(huán)鏈表 124 7.4 小結(jié) 128 習(xí)題 128 第8章 數(shù)據(jù)的組織與處理(3) 文件 130 8.1 將數(shù)據(jù)保存到文件 130 8.2 從文件中讀取數(shù)據(jù) 132 8.3 利用輸入輸出文件解交互類(lèi)型的題 135 8.4 小結(jié) 145 習(xí)題 145 第9章 遞歸思想與相應(yīng)算法 146 9.1 遞歸及其實(shí)現(xiàn) 146 9.2 遞歸算法舉例 153 9.2.1 計(jì)算組合數(shù) 153 9.2.2 快速排序 154 9.2.3 數(shù)字旋轉(zhuǎn)方陣 158 9.2.4 下樓問(wèn)題 162 9.2.5 跳馬問(wèn)題 164 9.2.6 分書(shū)問(wèn)題 166 9.2.7 八皇后問(wèn)題 169 9.2.8 青蛙過(guò)河 172 9.3 小結(jié) 177 課外閱讀材料 177 習(xí)題 181 第10章 多步?jīng)Q策問(wèn)題 182 10.1 多步?jīng)Q策問(wèn)題的解題思路 182 10.1.1 人鬼渡河的任務(wù)與規(guī)則要點(diǎn) 182 10.1.2 人鬼渡河的安全性考慮 183 10.1.3 安全狀態(tài)的描述 183 10.2 安全條件形式化 184 10.3 從狀態(tài)圖上研究怎樣一步一步過(guò)河 186 10.4 多步?jīng)Q策問(wèn)題的編程思路 186 10.5 小結(jié) 189 習(xí)題 189 第11章 寬度優(yōu)先搜索 191 11.1 騎士聚會(huì)問(wèn)題 191 11.2 解題思路 196 11.3 小結(jié) 202 習(xí)題 203 第12章 深度優(yōu)先搜索 204 12.1 問(wèn)題描述 204 12.2 解題思路 205 12.3 深度優(yōu)先搜索與剪枝 211 12.4 小結(jié) 216 習(xí)題 216 第13章 貪心法 217 13.1 貪心法解題的一般步驟 217 13.1.1 裝船問(wèn)題 217 13.1.2 事件序列問(wèn)題 220 13.1.3 貪心法解題的一般步驟 222 13.2 貪心法相關(guān)理論 223 13.2.1 多階段決策問(wèn)題、無(wú)后向性與最優(yōu)化原理 223 13.2.2 有向圖最短路徑的Dijkstra算法 223 13.2.3 貪心法解題的注意事項(xiàng) 227 13.3 小結(jié) 228 習(xí)題 228 第14章 動(dòng)態(tài)規(guī)劃 230 14.1 最短路徑問(wèn)題 230 14.1.1 問(wèn)題描述 230 14.1.2 分析與題解 231 14.2 動(dòng)態(tài)規(guī)劃的基本概念 234 14.3 動(dòng)態(tài)規(guī)劃思想 235 14.4 舉例說(shuō)明動(dòng)態(tài)規(guī)劃思路 237 14.5 小結(jié) 244 習(xí)題 244 第15章 蒙特卡羅法 246 15.1 偽隨機(jī)數(shù)的產(chǎn)生 246 15.1.1 產(chǎn)生隨機(jī)整數(shù) 246 15.1.2 產(chǎn)生隨機(jī)小數(shù) 247 15.2 偽隨機(jī)數(shù)的應(yīng)用 248 15.2.1 求的近似值 248 15.2.2 計(jì)算圖形面積 249 15.3 小結(jié) 250 習(xí)題 250 附錄A 程序調(diào)試 251 A.1 計(jì)分程序的調(diào)試 251 A.1.1 編譯時(shí)的調(diào)試 252 A.1.2 運(yùn)行時(shí)的調(diào)試 254 A.1.3 其他調(diào)試相關(guān)知識(shí) 259 A.2 跳馬程序的調(diào)試 260 附錄B 庫(kù)函數(shù) 267 B.1 數(shù)學(xué)函數(shù) 267 B.2 字符判斷函數(shù) 268 B.3 字符串相關(guān)函數(shù) 271 附錄C ASCII碼表 277 附錄D 輸入輸出的格式控制 278 D.1 流的概念與輸入輸出格式 278 D.2 改變整數(shù)的進(jìn)制 278 D.3 設(shè)置浮點(diǎn)數(shù)的精度 279 D.4 設(shè)置輸入輸出寬度 280 D.5 設(shè)置對(duì)齊方式和填充字符 281 D.6 其他設(shè)置 282 參考文獻(xiàn) 284
你還可能感興趣
我要評(píng)論
|