程序設(shè)計(jì)實(shí)踐入門:大學(xué)程序設(shè)計(jì)課程與競(jìng)賽訓(xùn)練教材
定 價(jià):69 元
- 作者:周娟,吳永輝
- 出版時(shí)間:2021/7/1
- ISBN:9787111685791
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.1
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書面向程序設(shè)計(jì)競(jìng)賽的準(zhǔn)備和訓(xùn)練,引導(dǎo)讀者進(jìn)入編程的大門,主要內(nèi)容包括:編程概述、編程語(yǔ)法基礎(chǔ)、編程結(jié)構(gòu)、進(jìn)制轉(zhuǎn)換、鏈表、排序、STL、思維訓(xùn)練、遞推、貪心算法、優(yōu)先隊(duì)列、簡(jiǎn)單搜索、分治等。
我們編著大學(xué)程序設(shè)計(jì)課程與競(jìng)賽訓(xùn)練教材系列圖書的初心是,基于程序設(shè)計(jì)競(jìng)賽的試題,以全面、系統(tǒng)地訓(xùn)練和提高學(xué)生編程解決問(wèn)題的能力為目標(biāo),出版既能用于大學(xué)程序設(shè)計(jì)類課程的教學(xué)和實(shí)驗(yàn),又能用于程序設(shè)計(jì)競(jìng)賽選手訓(xùn)練的著作。目前,這一系列在中國(guó)大陸出版了簡(jiǎn)體中文版,在中國(guó)臺(tái)灣地區(qū)出版了繁體中文版,在美國(guó)由CRC Press出版了英文版。而我們不僅對(duì)本系列不斷進(jìn)行改進(jìn),也就課程建設(shè)、教學(xué)和訓(xùn)練體系的建設(shè)開(kāi)展了一系列的工作。
對(duì)于大學(xué)程序設(shè)計(jì)課程與競(jìng)賽訓(xùn)練教材系列圖書的建設(shè),寧夏理工學(xué)院副校長(zhǎng)俞經(jīng)善教授建議,要出版一部專門進(jìn)行程序設(shè)計(jì)入門訓(xùn)練的書籍,它不僅能夠適用于雙一流院校的學(xué)生,也要能夠適用于應(yīng)用技術(shù)型院校的學(xué)生。華東交通大學(xué)的周娟老師一直負(fù)責(zé)學(xué)校的程序設(shè)計(jì)競(jìng)賽訓(xùn)練,她有一本使用了若干年的講義,我們對(duì)這本講義進(jìn)行了改編,形成了本書。
對(duì)于本書的編寫,我們的指導(dǎo)思想如下。
1)內(nèi)容上,基于大學(xué)一年級(jí)的程序設(shè)計(jì)語(yǔ)言、高等數(shù)學(xué)、線性代數(shù)課程的教學(xué)內(nèi)容,以及中學(xué)期間所學(xué)的數(shù)學(xué)、物理相關(guān)知識(shí),讓學(xué)生體會(huì)和實(shí)踐通過(guò)編程解決問(wèn)題。
2)形式上,和系列著作一樣,章節(jié)的組織以實(shí)驗(yàn)為核心,以程序設(shè)計(jì)競(jìng)賽試題以及詳細(xì)的解析、帶注解的程序作為主要內(nèi)容。
本書的內(nèi)容如下。
第1章給出簡(jiǎn)單輸出,以及練習(xí)輸入-處理-輸出模式的實(shí)驗(yàn)。第2章給出選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、嵌套結(jié)構(gòu)、數(shù)組、二維數(shù)組、字符和字符串的實(shí)驗(yàn);第3章給出函數(shù)、遞歸函數(shù)、結(jié)構(gòu)體、指針的實(shí)驗(yàn)。本書的前三章是基于程序設(shè)計(jì)語(yǔ)言的教學(xué)大綱,循序漸進(jìn)地展開(kāi)編程實(shí)驗(yàn),可以作為程序設(shè)計(jì)語(yǔ)言課程的實(shí)驗(yàn)教材。
第4章分為五節(jié):幾何初步,歐幾里得算法和擴(kuò)展的歐幾里得算法,概率論初步,微積分初步,矩陣計(jì)算。一方面,結(jié)合學(xué)生在中學(xué)期間所學(xué)習(xí)和掌握的數(shù)學(xué)知識(shí)進(jìn)行編程解題訓(xùn)練;另一方面,配合學(xué)生大一期間學(xué)習(xí)的高等數(shù)學(xué)中的導(dǎo)數(shù)、線性代數(shù)中的矩陣給出編程實(shí)驗(yàn)。第5章也分為五節(jié):簡(jiǎn)單的排序算法(選擇排序、插入排序、冒泡排序),歸并排序,快速排序,利用排序函數(shù)進(jìn)行排序,結(jié)構(gòu)體排序。首先,給出運(yùn)用運(yùn)行時(shí)間為O(n2)的簡(jiǎn)單排序算法進(jìn)行排序的實(shí)驗(yàn);然后,給出運(yùn)用時(shí)間復(fù)雜度為O(nlog2n)的排序算法進(jìn)行排序的實(shí)驗(yàn);后,給出利用排序函數(shù)進(jìn)行排序以及結(jié)構(gòu)體排序的實(shí)驗(yàn)。第6章分為兩節(jié):STL容器,STL算法。
本書可作為大學(xué)程序設(shè)計(jì)語(yǔ)言入門課程的實(shí)驗(yàn)教材,也可用作程序設(shè)計(jì)競(jìng)賽選手的入門訓(xùn)練參考書籍。
我們對(duì)浩如煙海的ACM-ICPC程序設(shè)計(jì)競(jìng)賽區(qū)域預(yù)賽和全球總決賽、大學(xué)的程序設(shè)計(jì)競(jìng)賽、在線程序設(shè)計(jì)競(jìng)賽以及中學(xué)生信息學(xué)奧林匹克競(jìng)賽的試題進(jìn)行了分析和整理,從中精選出84道試題(包括一題多解)作為本書的實(shí)驗(yàn)范例試題,每道試題不僅有詳盡的試題解析,還給出了標(biāo)有詳細(xì)注釋的參考程序。
華章網(wǎng)站(www.hzbook.com)提供了本書所有試題的英文原版以及大部分試題的官方測(cè)試數(shù)據(jù)。
這些年來(lái),我們秉承不忘初心,方得始終的信念,不斷地完善和改進(jìn)系列著作。我們非常感謝廣大海內(nèi)外同人的情義相挺,并特別感謝中國(guó)大陸及中國(guó)臺(tái)灣、中國(guó)香港、中國(guó)澳門的同人一起創(chuàng)建ACM-ICPC亞洲訓(xùn)練聯(lián)盟,該聯(lián)盟不僅為本書也為我們的系列著作及其課程建設(shè)提供了一個(gè)實(shí)踐的平臺(tái)。
由于時(shí)間和水平所限,書中肯定會(huì)夾雜一些錯(cuò)誤,表述不當(dāng)和筆誤也在所難免,熱忱歡迎學(xué)術(shù)界同人和讀者賜正。如果你在閱讀中發(fā)現(xiàn)了問(wèn)題,請(qǐng)通過(guò)電子郵件告訴我們,以便我們?cè)谡n程建設(shè)和中英文版再版時(shí)加以改進(jìn)。聯(lián)系方式如下。
通信地址:上海市邯鄲路220號(hào)復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院?吳永輝(郵編:200433)
電子郵件:yhwu@fudan.edu.cn
周 娟 吳永輝
2021年4月
注:本書試題的在線測(cè)試地址如下。
在線評(píng)測(cè)系統(tǒng)簡(jiǎn)稱網(wǎng)址
北京大學(xué)在線評(píng)測(cè)系統(tǒng)POJhttp://poj.org/
浙江大學(xué)在線評(píng)測(cè)系統(tǒng)ZOJhttps://zoj.pintia.cn/home
UVA在線評(píng)測(cè)系統(tǒng)UVAhttp://uva.onlinejudge.org/
http://livearchive.onlinejudge.org/
Ural在線評(píng)測(cè)系統(tǒng)Uralhttp://acm.timus.ru/
HDOJ在線評(píng)測(cè)系統(tǒng)HDOJhttp://acm.hdu.edu.cn/
計(jì)蒜客在線評(píng)測(cè)系統(tǒng)計(jì)蒜客https://nanti.jisuanke.com/acm
Gym在線評(píng)測(cè)系統(tǒng)Gymhttp://codeforces.com/problemset
前 言
第1章 編程起點(diǎn):輸入和輸出 1
1.1 輸出 1
1.2 輸入與輸出 2
第2章 編程基礎(chǔ)I 4
2.1 選擇結(jié)構(gòu) 4
2.2 循環(huán)結(jié)構(gòu) 7
2.3 嵌套結(jié)構(gòu) 14
2.4 數(shù)組 21
2.4.1 數(shù)組的特點(diǎn) 22
2.4.2 離線計(jì)算 26
2.4.3 序列 29
2.5 二維數(shù)組 33
2.6 字符和字符串 41
第3章 編程基礎(chǔ)II 49
3.1 函數(shù) 49
3.2 遞歸函數(shù) 57
3.3 結(jié)構(gòu)體 61
3.4 指針 69
第4章 數(shù)學(xué)計(jì)算 76
4.1 幾何初步 76
4.2 歐幾里得算法和擴(kuò)展的歐幾里得算法 87
4.3 概率論初步 93
4.4 微積分初步 101
4.5 矩陣計(jì)算 108
第5章 排序 115
5.1 簡(jiǎn)單的排序算法:選擇排序、插入排序、冒泡排序 116
5.2 歸并排序 122
5.3 快速排序 129
5.4 利用排序函數(shù)進(jìn)行排序 132
5.5 結(jié)構(gòu)體排序 138
第6章 C STL 144
6.1 STL容器 144
6.1.1 序列式容器 144
6.1.2 關(guān)聯(lián)式容器 150
6.1.3 迭代器 161
6.2 STL算法 170