導航:首頁 > 源碼編譯 > 演算法競賽寶典3

演算法競賽寶典3

發布時間:2023-01-15 07:36:29

㈠ 全國電子設計大賽大賽又來臨了 請問各位放大類題目需要准備哪些模塊啊!

2011年全國電子設計競賽賽題預測(權威版)
首先, 2011年題目應該與往年差異不大。無非是儀器類、電源類、放大器類、控制類等幾大塊。所以現在老師用以前的訓練模式給學生打基礎應該沒什麼問題。但有一下幾點要注意:
因為推薦全國都有筆試考核,筆試多數以電子基礎、模電知識為主,所以2011年年全國題目應該會繼續在模電題目上下功夫,而數字電路,因為現在出題難度、晶元功能等原因,可能會不再考。
頻譜儀、信號發生器、相位儀等相關題目都基本出過,所以如果儀器類繼續出題目的話,可能還是在原先的基礎上加強功能或者增加難度,但是這類型題目出的次數都比較多,不懷疑換類型的可能。儀器方面也要根據實驗常用的儀器來判斷哪些儀器在往年還沒有涉及,而有可能當做新的方向來考核的,比如失真度儀什麼的。
電源類好似是每年必出之題,所以建議不管出不出這類題,學生在平時鍛煉的時候還是鍛煉下為好,做幾個電源,電流的、電壓的,不出專門題目,說不準在其他題目上還能有所應用。再說,你就做個DDS信號源鍛煉下,也浪費不了多長時間嘛。
放大器類題目前面幾屆也出過,上屆專科組出過,本科組沒有,預計今年會繼續加入放大器類的題目。
2011年全國競賽器件將會允許嵌入式、DSP、FPGA的相關晶元使用,所以學生可以根據自己的能力選擇用嵌入式還是單片機參加相關的題目。因為嵌入式難度較大,多數學校都沒有很好的開展嵌入式,所以直接出嵌入式題目的可能性不大。
控制類題目,前面幾屆多數採用小車車體,但是隨著感測器及小車功能的擴展應用,題目也出的差不多了,再出好的題目有點難度,估計可能不會在以小車為載體,但是學生在學習控制電機等方面,小車還是一個不錯的鍛煉平台,即使不考,但是練習還是有必要的。
語音類題目,從前幾屆來看,幾乎每屆都有設計,雖然多數是作為擴展功能實現的,但是不可否認這是一個電子競賽不可或缺的一個方面,所以2011年有可能會扶正,專門出一語音存儲、多媒體或語音處理方面的題目。

建議現階段同學們可以練習一下RC振盪器、相位測試儀,多功能存儲示波器等基礎性題目,爭取到時可以做到「以不變應萬變」。

以上是對2011年年競賽的簡單預測,僅做參考,相應學習、練習還是根據自己學校、小組的實力、學校的安排來進行,只要知識掌握全面、動手能力強,不管遇到哪方面題目,都能順利解決。
最後,祝大家都能在在競賽中取得優異成績!
/*******************************************************/
補充意見:
1、低功耗、小信號測量與處理的題目可能也會有。
2、結合今年低能減耗的大形勢,低功耗的題目確實是很可能出。
/*******************************************************/
全國大學生電子設計競賽遼寧賽區會議」指導思想:

這次會議上除開展一些常規內容外,還宣布了一些「小道消息」,也是會議老師最想聽的內容:
1、這次不提出最小系統的概念,(如以前AD\DA都需要自己設計電路,這次沒有特殊要求),嵌入式、DSP、FPGA均可引入
2、PC機、筆記本不能出現在賽場
3、基礎測試計入總分(參評國家獎時,每組派一個學生參加筆試,筆試成績計入總分)
4、這次提出性價比,性價比佔5~10分
5、功耗分析,占的分數很重(老師多次強調,老師說也是決定國家一等獎作品的重點),老師建議大家在做設計時將能測功耗的點留出來,事先要有準備;
6、可以採用小系統板,電路中必須有學生自己設計的電路部分,不能使用評估板,大系統板;
7、減少設計報告的評分比重。

版主言:競賽指導思想越來越明確了!大家加油啊!
/*******************************************************/
由於資深競賽專家對競賽趨勢做了預測:
1。電子競賽題目來看,應該還是會照顧到電子相關專業,類型不會有太大變化,但隨消費電子的普及,題目里或獲獎作品裡會有消費電子功能的身影,
2。創新是電子行業發展的動力,今年題目會更加鼓勵創新,題目發揮部分自由度更大,最後獲獎作品裡會百花齊放,更「多媒體」
3。隨著多媒體的普及,今年帶有顯示部分的題目,用彩屏獲獎機會、比例會加大,說不定圖像感測器今年會有使用
4。隨著嵌入式的普及,用32位參賽的門檻的降低,今年獲獎作品不乏32位系統
5。隨著soc技術的發展,集成度越來越高,數字電路搭建會少,模擬的不會減少,集成度高的小系統板不會受限制,可能會得到更多應用
6。從以往目前競賽成績好的學校來看,基本是動手早、學校重視、老師負責,現在都在開始動作,陸續搞選拔等基礎培訓工作。
7。小車題目很經典,對檢測控制專業是很好的題目。
專家還提出建議:
1。建議老師提早動手,選拔優秀人才,sowt分析自己的優劣勢,明確今年競賽的參賽題目方向、拿獎目標。
2。近期通過單片機板培養學生競賽的基本功,通過興趣產品、電子競賽禮包,提重點在c語言編成、單片機開發調試能力。
3。中期玩轉角度感測器、指南針、超聲波、紅外等周邊產品,有能力要沖擊全國冠軍的隊伍,學一下32位,爭取在擴展題目內容里多拿分。
2011年電子競賽突擊寶典
有許多認識我的同學經常會問我一些關於怎樣參加電子競賽怎樣准備,他們打算參加全國電子競賽,但又感到很迷茫,不知道該從何做起 ,該怎麼准備,今天我以個人的看法和我的經驗所知,也收集補充了這些網上的建議,希望能給大家做個參考(2年一次每次都有新的變化,本文章僅限於2011年電子競賽參考)
1、對競賽滿懷熱情
很清楚,熱情是保持一個人對一件事物的熱忠程度,它可以引導你,為你注入強大的動力。相信很多人參加國賽純粹是為了將來找工作時可以在自己的簡歷上填上這個經歷,這就不是一種熱情了。因為對他們來說參加競賽才是首要的,至於能否拿獎次之,也就不注重競賽的過程。這我不是很提倡,我提倡的是用熱情參賽,但我並不提倡三分鍾的熱情。其次,我看到好多人都站在考研和參賽的抉擇口,在此我額外補充一點。我覺得這種情況最好要不要遲疑太久,要明確自己的方向,當機立斷,免得兩頭分心,吃力又不合算(畢竟一個人精力有限)。正所謂無,好的開始就是成功的一半。
2、關注和收集國賽資料,了解規則
如果你有意參加的話,平時就要多關注全國電子競賽信息,收集一些往年競賽資料,了解評分規則,這些都是很有必要的。
3、團隊的選擇。
我在團隊這方面也沒什麼高見,相信大家這以後的准備過程中會組建起來自己的團隊。一個能在全國大學生電子競賽中得獎的團隊必須具備這么幾個特徵: 絕對喜歡電子開發。在軟體、硬體、論文寫作中各有所長。你想想3個只會C語言的傢伙合一起能幹什麼。這樣的團隊還不如大家一起看看《越獄》、《24小時》實在。選好團隊後就要確定團隊核心人物。大家一定都能想得到,一旦進入備戰階段,組員間的探討是必然的,各抒己見固然好,但往往也比較容易起爭執。這時如果有個核心人物,他的話在非常時期大家必須絕對服從,他說了算。
4、正確認識自己的團隊優勢資源,明確分工。
要想獲得成功,就必須認清自己團隊的優勢,充分調用組員中的優勢資源,比如:某個組員在編程方面有優勢,那麼就應該合理分配編程工作給他,這樣大家分工也就相對明確了,也都能充分發揮自己的所長,將團對協作的力量發揮到最大。
5、基本技能的准備
磨刀不誤砍材功,根基不牢就不要往上爬,爬得越高,摔得越重。 這個方面,你需要連接常用的電路,如高增益放大電路,跟隨電路,濾波電路的設計,學習protel制圖軟體,會劃電路原理圖,會PCB制板。在准備期間一定要學會用萬用板焊接電路,或者用三氯化鐵腐蝕電路,這個效果非常好。在正式比賽前,一定要於團隊在4天內練習做一個完整的電子系統,時間安排在8月初最好(推薦凌陽大學計劃賽前熱身套件),不要以為你能做好各個模塊,但是聯機調試你就不一定成功,總是會缺點什麼,事實證明,大部分的競賽隊失敗就失敗在最後的聯機。
6、選對核心器件是關鍵
(單片機)選型 CPU是電子設計競賽的核心器件。現在的微處理器很多,如 比較古老的8051單片機,AVR單片機,PIC單片機,MSP430單片機。現在也出了很多新型單片機,這類單片機含有很多的擴充資源,如大量的FLASH(這些FLASH對LCD字型檔很有幫助)、中速AD,D\A、多定時器、PWM,語音功能等等,這些資源會給開發帶來很多的方便。從個人經驗看,競賽一定要用自己擅長的單片機,但根據題目的不同,不同的單片機實現起來難度也不一樣。如果准備時間短,沒有很豐富的單片機開發經驗又對自己水平不是太自信的朋友,可以學習一下凌陽的61板,快速入門和豐富權威的自學資料能達到事半功倍的效果,隨著時代的變化,電子產品的更新也是日新月異的,現在很多人都喜歡上了嵌入式和DSP。根據09年競賽的精神利用嵌入式與DSP參加電子競賽也會逐漸提到日程上來,如果做的是關於高速數據處理的的題目,比如高速數據採集,高速數據傳輸等等,這樣這兩個東西會有用武之地。
7、基本模塊的准備
參加電子設計競賽,離不開一些基本模塊。像LED,LCD子電路,子程序。(這點凌陽的61板做的很好,有很多現成的標准函數可以調用)AD,DA電路,搞控制的總得選好步進電機的型號,驅動電路,驅動程序吧,那搞無線的應該准備什麼呢?自己去想吧!有一個一等獎選手告訴過我,他說「在競賽前我就知道我會得獎,因為我把該准備的東西都准備了,而且在比賽前幾天都夢到了比賽題目",他說得有點誇張,但是也很可信,足以證明這個准備對整個比賽有舉足輕重的作用。
8、專注自己的強項
下面對全國大學生電子設計競賽談幾點全國大學生電子設計競賽的試題:其實每年的競賽試題都有很多相似的地方,控制類的如 簡單的工業控制、小車;傳統題目如數據調理、數據採集,無線傳輸系統;電源設計;簡單儀器、儀表設計(每年必要一題)如2005年的簡易頻譜分析儀,2003年的簡易邏輯分析器。建議為了奪獎的朋友專注自己的強項。
9、備戰前要調理好身體
這也是很容易忽略的一點。4天3夜是個什麼概念,我想大家都要清楚點,所謂身體是革命的本錢。既然下定決心參賽,就要調理好身體,以最佳的狀態來迎接挑戰。否則,千載難逢的機會就可能擦肩而過,留下的就將會是遺憾。
10、要有善始善終,持之以恆的決心
競賽不僅僅是技能的競爭,更是良好心態的比拼。比賽期間,肯定都會遇到這樣那樣的問題,如果沒有善始善終,持之以恆的決心,三天打魚,兩天曬網,是走不到最後的。要切切實實按照制定好的進程走,該做哪項任務,就要盡量克服一切困難做完,該今天做的,就不能留到明天。
具備以上條件後,你還應該做的就是自信了。
11、會做也要會表達
一個獲得一等獎的團隊,不用問這裡面肯定有一個好的隊長,一個好的指導老師,還有一個很關鍵的角色,文筆不錯善於表達的人物。一個團隊的設計理念和思想需要通過他公布於眾,讓評委團了解和認同你們的觀點,論文的書寫也是考察寫作基本功的關鍵要素,切記現在不是酒香不怕巷子深的年代了,因為可以選擇的對象太多,要學會主動出擊。所以說一個好的團隊是成功的一半!

㈡ 學習數據結構,有哪些值得推薦的好書

在微信高校專業集裡面粘貼
入門
1.《啊哈!演算法
2.《演算法設計與分析基礎》
3.《演算法引論:一種創造性方法》
4.原書名:Introction to Algorithms
中文名:演算法導論
5.數據結構與演算法分析:C語言描述(原書第2版)
進階
1.原書名:The Design and Analysis of Computer Algorithms
中文名:演算法設計與分析
作者:Aho,Hopcroft,Ullman
2.原書名:Algorithms Design Techniques and Analysis
中文名:演算法設計技巧與分析
作者:M.H.Alsuwaiyel
3.中文名:演算法與數據結構
作者:傅清祥 王曉東
程序設計競賽
1.原書名:Introction to Algorithms
中文名:演算法導論
作者:Thomas H.Cormen,Charles E.Leiserson,Ronald L.Rivest,Clifford Stein
2.原書名:Introction to The Design & Analysis of Algorithms
中文名:演算法設計與分析基礎
作者:Anany Levitin
4.演算法競賽 | 信息學奧賽一本通
5.演算法競賽 | 演算法競賽進階指南

㈢ c語言的學習方法

得從點點滴滴的東西做起。。。本人也是學這個的,有些體會,。
《C程序設計》的內容很豐富,按照我們現在的教學大綱,主要內容是基礎知識、四種結構的的程序設計、函數與數組的應用和一些簡單的演算法。在學習時,同學們應該把主要精力放在這些部分,通過實踐(練習和上機調試等熟練掌握。當然,在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完後面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎麼說自己聽不懂呢?相應的根本就沒學習,又談何學的好?
學習C語言始終要記住「曙光在前頭」和「千金難買回頭看」,「千金難買回頭看」是學習知識的重要方法,就是說,學習後面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。比如:在C語言中最典型的是關於結構化程序設計構思,不管是那種教材,一開始就強調這種方法,這時也許你不能充分體會,但是學到函數時,再回頭來仔細體會,溫故知新,理解它就沒有那麼難了。學習C語言就是要經過幾個反復,才能前後貫穿,積累應該掌握的C知識。
那麼,我們如何學好《C程序設計》呢?
一.學好C語言的運算符和運算順序
這是學好《C程序設計》的基礎,C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。在學習中,只要我們對此合理進行分類,找出它們與我們在數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算符在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。
先要明確運算符按優先順序不同分類,《C程序設計》運算符可分為15種優先順序,從高到低,優先順序為1 ~ 15,除第2、3級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序。下面我們通過幾個例子來說明:
(1) 5*8/4%10 這個表達式中出現3種運算符,是同級運算符,運算順序按從左至右結合,因此先計算5 *8=40,然後被4除,結果為10,最後是%(求余數)運算,所以表達式的最終結果為10%10 = 0;
(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;
對於c=++a*b來說,按表中所列順序,+ +先執行,*後執行,所以+ + a執行後,a的值為4,由於+ +為前置運算,所以a的值4參與運算,C的值計算式為4*5=20而不是3*5=15了;而對於d=a++*b來說,由於a + +為後置運算,所以a值為4參與運算,使得d的值仍為20,而a參與運算後其值加1,值為5。 這個例子執行後,a的值為5,b的值為5,c的值為20,d的值也是20;
(3)(a = 3,b = 5,b+ = a,c = b* 5)
例子中的「,」是逗號結合運算,上式稱為逗號表達式,自左向右結合,最後一個表達式的結果值就是逗號表達式的結果,所以上面的逗號表達式結果為40,a的值為3,b的值為8,c的值為40。
(4)a=5;b=6;c=a>b?a:b;
例中的a>b?a:b是一個三目運算,它的功能是先做關系運算a>b部分,若結果為真,則取問號後a的值,否則取冒號後b的值,因此c的值應該為6,這個運算可以用來代替if…else…語句的簡單應用。
二.學好C語言的四種程序結構
(1)順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如;a = 3,b = 5,現交換a,b的值,這個問題就好象交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為: c = a; a = b; b = c; 執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。 順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等。
(2) 分支結構
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。分支結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。
學習分支結構不要被分支嵌套所迷惑,只要正確繪制出流程圖,弄清各分支所要執行的功能,嵌套結構也就不難了。嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結構。
①if(條件)
{
分支體
}
這種分支結構中的分支體可以是一條語句,此時「{ }」可以省略,也可以是多條語句即復合語句。它有兩條分支路徑可選,一是當條件為真,執行分支體,否則跳過分支體,這時分支體就不會執行。如:要計算x的絕對值,根據絕對值定義,我們知道,當x>=0時,其絕對值不變,而x<0時其絕對值是為x的反號,因此程序段為:if(x<0) x=-x;
②if(條件)
{分支1}
else
{分支2}
這是典型的分支結構,如果條件成立,執行分支1,否則執行分支2,分支1和分支2都可以是1條或若干條語句構成。如:求ax^2+bx+c=0的根
分析:因為當b^2-4ac>=0時,方程有兩個實根,否則(b^2-4ac<0)有兩個共軛復根。其程序段如下:

d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x1=(-b-sqrt(d))/2a;
printf(「x1=%8.4f,x2=%8.4f\n」,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(「x1=%8.4f+%8.4fi\n」r, i);
printf(「x2=%8.4f-%8.4fi\n」r,i)
}
③嵌套分支語句:其語句格式為:
if(條件1) {分支1};
else if(條件2) {分支2}
else if(條件3) {分支3}
……
else if(條件n) {分支n}
else {分支n+1}
嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套後,語句結構變得非常復雜,對於程序的閱讀和理解都極為不便,建議嵌套在3重以內,超過3重可以用下面的語句。
④switch開關語句:該語句也是多分支選擇語句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if…else 語句,它的所有分支都是並列的,程序執行時,由第一分支開始查找,如果相匹配,執行其後的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。這個語句在應用時要特別注意開關條件的合理設置以及break語句的合理應用。
(3)循環結構:
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do –while循環和for循環。四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤,在學習中我們主要學習while、do…while、for三種循環。常用的三種循環結構學習的重點在於弄清它們相同與不同之處,以便在不同場合下使用,這就要清楚三種循環的格式和執行順序,將每種循環的流程圖理解透徹後就會明白如何替換使用,如把while循環的例題,用for語句重新編寫一個程序,這樣能更好地理解它們的作用。特別要注意在循環體內應包含趨於結束的語句(即循環變數值的改變),否則就可能成了一個死循環,這是初學者的一個常見錯誤。
在學完這三個循環後,應明確它們的異同點:用while和do…while循環時,循環變數的初始化的操作應在循環體之前,而for循環一般在語句1中進行的;while 循環和for循環都是先判斷表達式,後執行循環體,而do…while循環是先執行循環體後判斷表達式,也就是說do…while的循環體最少被執行一次,而while 循環和for就可能一次都不執行。另外還要注意的是這三種循環都可以用break語句跳出循環,用continue語句結束本次循環,而goto語句與if構成的循環,是不能用break和 continue語句進行控制的。
順序結構、分支結構和循環結構並不彼此孤立的,在循環中可以有分支、順序結構,分支中也可以有循環、順序結構,其實不管哪種結構,我們均可廣義的把它們看成一個語句。在實際編程過程中常將這三種結構相互結合以實現各種演算法,設計出相應程序,但是要編程的問題較大,編寫出的程序就往往很長、結構重復多,造成可讀性差,難以理解,解決這個問題的方法是將C程序設計成模塊化結構。
(4)模塊化程序結構
C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然後通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。 因些,對函數的定義、調用、值的返回等中要尤其注重理解和應用,並通過上機調試加以鞏固。
三.掌握一些簡單的演算法
編程其實一大部分工作就是分析問題,找到解決問題的方法,再以相應的編程語言寫出代碼。這就要求掌握演算法,根據我們的《C程序設計》教學大綱中,只要求我們掌握一些簡單的演算法,在掌握這些基本演算法後,要完成對問題的分析就容易了。如兩個數的交換、三個數的比較、選擇法排序和冒泡法排序,這就要求我們要清楚這些演算法的內在含義,其中選擇法排序和冒泡法排序稍難,但只要明白排序的具體過程,對代碼的理解就不難了。如用選擇法對10個不同整數排序(從小到大),選擇法排序思路:設有10個元素a[1]~a[10],將a[1]與a[2]~a[10]比較,若a[1]比a[2]~a[10]都小,則不進行交換,即無任何操作;若a[2]~a[10] 中有一個比a[1]小,則將其中最大的一個(假設為a)與a[1]交換,此時a[1]中存放了10個中最小的數。第二輪將a[2]與a[3]~a[10]比較,將剩下9個數中的最小者a與a[2]交換,此時a[2] 中存放的10個數中第2小的數;依此類推,共進行9輪比較,a[1]到a[10]就已按從小到大的順序存放。即每一輪都找出剩下數中的最小一個,代碼如下:
for(i=1;i<=9;i++)
for(j=i+1;j<=10;j++)
if(a>a[j]
{temp=a;
a=a[j];
a[j]=temp;
}
結語:當我們把握好上述幾方面後,只要你能克服畏難、厭學、上課能專心聽講,做好練習與上機調試,其實C並不難學。

㈣ 《演算法競賽寶典》適合C++編程嗎

適合競賽,不適合程序員。建議你競賽看看劉汝佳的書,程序員看看cpp primer

㈤ ACM需要那些方面的知識

備戰ACM資料
一:知識點
數據結構:
1,單,雙鏈表及循環鏈表
2,樹的表示與存儲,二叉樹(概念,遍歷)二叉樹的
應用(二叉排序樹,判定樹,博弈樹,解答樹等)
3,文件操作(從文本文件中讀入數據並輸出到文本文
件中)
4,圖(基本概念,存儲結構,圖的運算)
數學知識
1,離散數學知識的應用(如排列組合、簡單的圖論,數
理邏輯)
2,數論知識
3,線性代數
4,組合代數
5,計算幾何
二 演算法
1,排序演算法(冒拋法,插入排序,合並排序,快速排
序,堆排序)
2,查找(順序查找,二分發)
3,回溯演算法
4,遞歸演算法
5,分治演算法
6,模擬法
7,貪心法
8,簡單搜索演算法(深度優先,廣度優先),搜索中的
剪枝,A*演算法
9,動態規劃的思想及基本演算法
10,高精度運算
三、ACM競賽的題型分析
競賽的程序設計一般只有16種類型,它們分別是:
Dynamic Programming (動態規劃)
Greedy (貪心演算法)
Complete Search (窮舉搜索)
Flood Fill (不知該如何翻譯)
Shortest Path (最短路徑)
Recursive Search Techniques (回溯搜索技術)
Minimum Spanning Tree (最小生成樹)
Knapsack (背包問題)
Computational Geometry (計算幾何學)
Network Flow (網路流)
Eulerian Path (歐拉迴路)
Two-Dimensional Convex Hull (不知如何翻譯)
BigNums (大數問題)
Heuristic Search (啟發式搜索)
Approximate Search (近似搜索)
Ad Hoc Problems (雜題)
四 ACM競賽參考書
《實用演算法的分析與程序設計》 (吳文虎,王建德著,電子工業出版社,競賽類的黑寶書)
《青少年國際和全國信息學(計算機)奧林匹克競賽指導)――組合數學的演算法
和程序設計》(吳文虎,王建德著,清華大學出版社,參加競賽組合數學必學)
《計算機演算法設計與分析》 (王曉東編著,最好的數據結構教材)
《數據結構與演算法》 (傅清祥,王曉東編著,我所見過的最好的演算法教材)
《信息學奧林匹克競賽指導――1997-1998競賽試題解析》(吳文虎,王建德著,清華大學出版社)
《計算機程序設計技巧》 D.E.Kruth著,演算法書中最著名的《葵花寶典》,大師的作品,難度大)
《計算幾何》周陪德著
《ACM國際大學生程序設計競賽試題與解析(一)》 (吳文虎著,清華大學出版社)
《數學建模競賽培訓教材》 共三本 葉其孝主編
《數學模型》 第二版 姜啟源
《隨機規劃》
《模糊數學》
《數學建模入門》 徐全智
《計算機演算法設計與分析》 國防科大
五 常見的幾個網上題庫
常用網站:
1)信息學初學者之家:
(2)大榕樹編程世界:
(3)中國教育曙光網:
(4)福建信息學奧林匹克:
(5)第20屆全國青少年信息學奧林匹克競賽:
(6)第15屆國際青少年信息學奧林匹克競賽:
(7)全美計算機奧林匹克競賽:
(8)美國信息學奧林匹克競賽官方網站:
(9)俄羅斯Ural州立大學:
(10)西班牙Valladolid大學:
(11)ACM-ICPC:
(12)北京大學:
(13)浙江大學:
(14)IOI:
(15)2003年江蘇省信息學奧林匹克競賽夏令營:
(16)
(17)
(18)
(19)
(20) colin_fox/colin_fox
五 如何備戰ACM/ICPC
1,個人准備(演算法書,習題集,網上做題和討論)
2,1000題=亞洲冠軍=世界決賽
3,做好資料收集和整理工作

㈥ 學習c語言看什麼書好

最近很多人都在問如何學習編程。我覺得學習編程最重要的是入門,如果你入門的時候有一個好的方法和思路,打下比較扎實的基礎,對今後的編程工作是很有益處的。即使在學習新的編程語言也無所謂,因為它們有很多相通之處,可以相互借鑒。
我認為可以先學習一下pascal,這個語言比較嚴謹,適合初學者。pascal它被稱為教學語言,結構嚴謹,不像C語言那麼靈活,易於理解和學習。
然後可以繼續學習C語言,這個語言比較靈活。有了pascal的基礎,在進行C語言編程就不會因為C語言的靈活而有問題
。後面的就可以學習VC什麼的了。
C語言的書推薦譚浩強的,比較好。
我當時學習pascal和C語言的時候是將書後的習題都做了一遍,感覺效果很好。
當然了,學習什麼語言也要看你具體准備從事什麼行業。例如你要進行嵌入式開發,C就是很好的選擇,如果是Windows開發,那麼VC就不錯。還有資料庫方面的開發、網路開發等等。不同的語言適合不同的方面。要看自己的選擇的,呵呵

還有很多人說自己的基礎很差,甚至中學畢業什麼的。其實這個並不重要,比較說英語,在計算機語言里所用到的單詞量很少,而且都是常用詞,經常使用就記住了。當然,如果你要看原文資料或者幫助的話,專業詞彙比較多,不過在金山詞霸的幫助下,經常看,也是沒什麼大的問題的。至於數學什麼的,其實數學只是培養你一個邏輯思維能力,在初學編程的時候影響不是很大。況且,作為一個基礎編程人員來說,上面還有系統分析師、項目經理,他們會把需求分析、概要設計和詳細設計做好的,你只要按照文檔寫代碼就OK了。不過,要上更上一步的話,其他基礎知識就非常重要了,畢竟你不能寫一輩子代碼。
在你學習好C語言以後,個人建議好好學習一下數據結構和軟體工程。這兩門對你的水平提高都是很有幫助的。特別是軟體工程,它能夠使你按照科學的工程方法進行軟體開發,對今後的發展很有好處。
只是一家之言,有不到之處,還望見諒

㈦ acm初學者要准備什麼 看什麼書啊

剛剛接觸信息學領域的同學往往存在很多困惑,不知道從何入手學習,在這篇文章里,我希望能將自己不多的經驗與大家分享,希望對各位有所幫助。
一、語言是最重要的基本功

無論側重於什麼方面,只要是通過計算機程序去最終實現的競賽,語言都是大家要過的第一道關。亞洲賽區的比賽支持的語言包括C/C++與JAVA。筆者首先說說JAVA,眾所周知,作為面向對象的王牌語言,JAVA在大型工程的組織與安全性方面有著自己獨特的優勢,但是對於信息學比賽的具體場合,JAVA則顯得不那麼合適,它對於輸入輸出流的操作相比於C++要繁雜很多,更為重要的是JAVA程序的運行速度要比C++慢10倍以上,而競賽中對於JAVA程序的運行時限卻往往得不到同等比例的放寬,這無疑對演算法設計提出了更高的要求,是相當不利的。其實,筆者並不主張大家在這種場合過多地運用面向對象的程序設計思維,因為對於小程序來說這不旦需要花費更多的時間去編寫代碼,也會降低程序的執行效率。

接著說C和C++。許多現在參加講座的同學還在上大一,C的基礎知識剛剛學完,還沒有接觸過C++,其實在賽場上使用純C的選手還是大有人在的,它們主要是看重了純C在效率上的優勢,所以這部分同學如果時間有限,並不需要急著去學習新的語言,只要提高了自己在演算法設計上的造詣,純C一樣能發揮巨大的威力。

而C++相對於C,在輸入輸出流上的封裝大大方便了我們的操作,同時降低了出錯的可能性,並且能夠很好地實現標准流與文件流的切換,方便了調試的工作。如果有些同學比較在意這點,可以嘗試C和C++的混編,畢竟僅僅學習C++的流操作還是不花什麼時間的。

C++的另一個支持來源於標准模版庫(STL),庫中提供的對於基本數據結構的統一介面操作和基本演算法的實現可以縮減我們編寫代碼的長度,這可以節省一些時間。但是,與此相對的,使用STL要在效率上做出一些犧牲,對於輸入規模很大的題目,有時候必須放棄STL,這意味著我們不能存在「有了STL就可以不去管基本演算法的實現」的想法;另外,熟練和恰當地使用STL必須經過一定時間的積累,准確地了解各種操作的時間復雜度,切忌對STL中不熟悉的部分濫用,因為這其中蘊涵著許多初學者不易發現的陷阱。

通過以上的分析,我們可以看出僅就信息學競賽而言,對語言的掌握並不要求十分全面,但是對於經常用到的部分,必須十分熟練,不允許有半點不清楚的地方,下面我舉個真實的例子來說明這個道理——即使是一點很細微的語言障礙,都有可能釀成錯誤:

在去年清華的賽區上,有一個隊在做F題的時候使用了cout和printf的混合輸出,由於一個帶緩沖一個不帶,所以輸出一長就混亂了。只是因為當時judge team中負責F題的人眼睛尖,看出答案沒錯只是順序不對(答案有一頁多,是所有題目中最長的一個輸出),又看了看程序發現只是輸出問題就給了個Presentation error(格式錯)。如果審題的人不是這樣而是直接給一個 Wrong Answer,相信這個隊是很難查到自己錯在什麼地方的。

現在我們轉入第二個方面的討論,基礎學科知識的積累。

二、以數學為主的基礎知識十分重要

雖然被定性為程序設計競賽,但是參賽選手所遇到的問題更多的是沒有解決問題的思路,而不是有了思路卻死活不能實現,這就是平時積累的基礎知識不夠。今年World Final的總冠軍是波蘭華沙大學,其成員出自於數學系而非計算機系,這就是一個鮮活的例子。競賽中對於基礎學科的涉及主要集中於數學,此外對於物理、電路等等也可能有一定應用,但是不多。因此,大一的同學也不必為自己還沒學數據結構而感到不知從何入手提高,把數學撿起來吧!下面我來談談在競賽中應用的數學的主要分支。

1、離散數學——作為計算機學科的基礎,離散數學是競賽中涉及最多的數學分支,其重中之重又在於圖論和組合數學,尤其是圖論。

圖論之所以運用最多是因為它的變化最多,而且可以輕易地結合基本數據結構和許多演算法的基本思想,較多用到的知識包括連通性判斷、DFS和BFS,關節點和關鍵路徑、歐拉迴路、最小生成樹、最短路徑、二部圖匹配和網路流等等。雖然這部分的比重很大,但是往往也是競賽中的難題所在,如果有初學者對於這部分的某些具體內容暫時感到力不從心,也不必著急,可以慢慢積累。

競賽中設計的組合計數問題大都需要用組合數學來解決,組合數學中的知識相比於圖論要簡單一些,很多知識對於小學上過奧校的同學來說已經十分熟悉,但是也有一些部分需要先對代數結構中的群論有初步了解才能進行學習。組合數學在競賽中很少以難題的形式出現,但是如果積累不夠,任何一道這方面的題目卻都有可能成為難題。

2、數論——以素數判斷和同餘為模型構造出來的題目往往需要較多的數論知識來解決,這部分在競賽中的比重並不大,但只要來上一道,也足以使知識不足的人冥思苦想上一陣時間。素數判斷和同餘最常見的是在以密碼學為背景的題目中出現,在運用密碼學常識確定大概的過程之後,核心演算法往往要涉及數論的內容。

3、計算幾何——計算幾何相比於其它部分來說是比較獨立的,就是說它和其它的知識點很少有過多的結合,較常用到的部分包括——線段相交的判斷、多邊形面積的計算、內點外點的判斷、凸包等等。計算幾何的題目難度不會很大,但也永遠不會成為最弱的題。

4、線性代數——對線性代數的應用都是圍繞矩陣展開的,一些表面上是模擬的題目往往可以藉助於矩陣來找到更好的演算法。

5、概率論——競賽是以黑箱來判卷的,這就是說你幾乎不能動使用概率演算法的念頭,但這也並不是說概率就沒有用。關於這一點,只有通過一定的練習才能體會。

6、初等數學與解析幾何——這主要就是中學的知識了,用的不多,但是至少比高等數學多,我覺得熟悉一下數學手冊上的相關內容,至少要知道在哪兒能查到,還是必要的。

7、高等數學——純粹運用高等數學來解決的題目我接觸的只有一道,但是一些題目的敘述背景往往需要和這部分有一定聯系,掌握得牢固一些總歸沒有壞處。

以上就是競賽所涉及的數學領域,可以說范圍是相當廣的。我認識的許多人去搞信息學的競賽就是為了逼著自己多學一點數學,因為數學是一切一切的基礎。

三、數據結構與演算法是真正的核心

雖然數學十分十分重要,但是如果讓三個只會數學的人參加比賽,我相信多數情況下會比三個只會數據結構與演算法的人得到更為悲慘的結局。

先說說數據結構。掌握隊列、堆棧和圖的基本表達與操作是必需的,至於樹,我個人覺得需要建樹的問題有但是並不多。(但是樹往往是很重要的分析工具)除此之外,排序和查找並不需要對所有方式都能很熟練的掌握,但你必須保證自己對於各種情況都有一個在時間復雜度上滿足最低要求的解決方案。說到時間復雜度,就又該說說哈希表了,競賽時對時間的限制遠遠多於對空間的限制,這要求大家盡快掌握「以空間換時間」的原則策略,能用哈希表來存儲的數據一定不要到時候再去查找,如果實在不能建哈希表,再看看能否建二叉查找樹等等——這都是爭取時間的策略,掌握這些技巧需要大家對數據結構尤其是演算法復雜度有比較全面的理性和感性認識。

接著說說演算法。演算法中最基本和常用的是搜索,主要是回溯和分支限界法的使用。這里要說的是,有些初學者在學習這些搜索基本演算法是不太注意剪枝,這是十分不可取的,因為所有搜索的題目給你的測試用例都不會有很大的規模,你往往察覺不出程序運行的時間問題,但是真正的測試數據一定能過濾出那些沒有剪枝的演算法。實際上參賽選手基本上都會使用常用的搜索演算法,題目的區分度往往就是建立在諸如剪枝之類的優化上了。

常用演算法中的另一類是以「相似或相同子問題」為核心的,包括遞推、遞歸、貪心法和動態規劃。這其中比較難於掌握的就是動態規劃,如何抽象出重復的子問題是很多題目的難點所在,筆者建議初學者仔細理解圖論中一些以動態規劃為基本思想所建立起來的基本演算法(比如Floyd-Warshall演算法),並且多閱讀一些定理的證明,這雖然不能有什麼直接的幫助,但是長期堅持就會對思維很有幫助。

四、團隊配合

通過以上的介紹大家也可以看出,信息學競賽對於知識面覆蓋的非常廣,想憑一己之力全部消化這些東西實在是相當困難的,這就要求我們盡可能地發揮團隊協作的精神。同組成員之間的熟練配合和默契的形成需要時間,具體的情況因成員的組成不同而不同,這里我就不再多說了。

五、練習、練習、再練習

知識的積累固然重要,但是信息學終究不是看出來的,而是練出來的,這是多少前人最深的一點體會,只有通過具體題目的分析和實踐,才能真正掌握數學的使用和演算法的應用,並在不斷的練習中增加編程經驗和技巧,提高對時間復雜度的感性認識,優化時間的分配,加強團隊的配合。總之,在這里光有紙上談兵是絕對不行的,必須要通過實戰來鍛煉自己。

大家一定要問,我們去哪裡找題做,又如何檢驗程序是否正確呢?這大可不必擔心,現在已經有了很多網上做題的站點,這些站點提供了大量的題庫並支持在線判卷,你只需要把程序源碼提交上去,馬上就可以知道自己的程序是否正確,運行所使用的時間以及消耗的內存等等狀況。下面我給大家推薦幾個站點,筆者不建議大家在所有這些站點上做題,選擇一個就可以了,因為每個站點的題都有一定的難易比例,系統地做一套題庫可以使你對各種難度、各種類型的題都有所認識。

1、Ural:

Ural是中國學生對俄羅斯的Ural州立大學的簡稱 ,那裡設立了一個Ural Online Problem Set,並且支持Online Judge。Ural的不少題目演算法性和趣聞性都很強,得到了國內廣大學生的厚愛。根據「信息學初學者之家」網站的統計,Ural的題目類型大概呈如下的分布:

題型
搜索
動態規劃
貪心
構造
圖論
計算幾何
純數學問題
數據結構
其它

所佔比例
約10%
約15%
約5%
約5%
約10%
約5%
約20%
約5%
約25%

這和實際比賽中的題型分布也是大體相當的。有興趣的朋友可以去看看。

2、UVA:

UVA代表西班牙Valladolid大學(University de Valladolid)。該大學有一個那裡設立了一個PROBLEM SET ARCHIVE with ONLINE JUDGE ,並且支持ONLINE JUDGE,形式和Ural大學的題庫類似。不過和Ural不同的是,UVA題目多的多,而且比較雜,而且有些題目的測試數據比較刁鑽。這使得剛到那裡做題的朋友往往感覺到無所適從,要麼難以找到合適的題目,要麼Wrong Answer了很多次以後仍然不知道錯在那裡。 如果說做Ural題目主要是為了訓練演算法,那麼UVA題目可以訓練全方位的基本功和一些必要的編程素質。UVA和許多世界知名大學聯合辦有同步網上比賽,因此那裡強人無數,不過你先要使自己具有聽懂他們在說什麼的素質:)

3、ZOJ:

ZOJ是浙江大學建立的ONLINE JUDGE,是中國大學建立的第一個同類站點,也是最好和人氣最高的一個,筆者和許多班裡的同學就是在這里練習。ZOJ雖然也定位為一個英文網站,但是這里的中國學生比較多,因此讓人覺得很親切。這里目前有500多道題目,難易分配適中,且涵蓋了各大洲的題目類型並配有索引,除此之外,ZOJ的JUDGE系統是幾個網站中表現得比較好的一個,很少出現Wrong Answer和Presentation error混淆的情況。這里每月也辦有一次網上比賽,只要是注冊的用戶都可以參加。

說起中國的ONLINE JUDGE,去年才開始參加ACM競賽的北京大學現在也建立了自己的提交系統;而我們學校也是去年開始參加比賽,現在也有可能推出自己的提交系統,如果能夠做成,到時候大家就可以去上面做題了。同類網站的飛速發展標志著有越來越多的同學有興趣進入信息學的領域探索,這是一件好事,同時也意味著更激烈的競爭。

看看這篇文章對你有什麼幫助!我也是ACM初學者!

㈧ 學數據結構(C++)有什麼值得推薦的好書

遠標老師以前推薦我看《數據結構》可以拿來入門。然後可以根據自己的實際情況來安排怎麼樣學習數據結構。很多人是看一遍書,然後在遇到演算法之後再去實現它。在這里列出一些我知道的演算法書籍,以供參考。(我也只看過演算法導論,編程之美)

1. CLRS 演算法導論
演算法網路全書,只做了前面十幾章的習題,便感覺受益無窮。
2. Algorithms 演算法概論
短小精悍,別據一格,准經典之作。一個壞消息: 同演算法導論,該書沒有習題答案。好消息:習題很經典,難度也適中,只需花點點時間自己也都能做出來。不好也不壞的消息:我正在寫習題的答案,已完成前三章,還剩九章約二百道題,順利的話二個月之後發布。另有中文版名《演算法概論》,我沒看過,不知道翻譯得怎麼樣。如果有心的話,還是盡量看原版吧,其實看原版與看中文版花費時間不會相差很大,因為大部分時間其實都花費在做習題上了。
dr. dobb's essential books on Algorithm and daba structure
3. Algorithm Design 演算法設計
很經典的一本書,很久之前看的,遺憾的是現在除了就記得它很經典之外其它都忘光了。
4. SICP 計算機程序的構造和解釋
六星之書無需多言,雖然這不是一本講演算法的書,但看完此書有助於你更深入的理解什麼是遞歸。我一直很強調習題,看完此書後你至少應該做完前四章的太部分習題。否則那是你的遺憾,也是作者的遺憾。
5. Concrete Mathematics 具體數學
有人說看TAOCP之前應該先弄清楚這本書的內容,要真是如此的話那我恐怕是看不到TAOCP了。零零碎碎的看了一大半,很多東西都沒有時間來好好消化。如果你是剛進大學不久的本科生,有著大把的可自由支配時間,那你幸運又幸福了,花上幾個月時間好好的讀一下此書吧,收獲絕對大於你的期望值。
6. Introction to The Design and Analysis of Algorithms 演算法設計與分析基礎
很有趣的一本演算法書,有許多在別的書上找不到的趣題,看完此書絕對能讓你大開眼界,實在是一本居家旅行,面試裝逼的必備佳作。
7. 編程之美--微軟技術面試心得
雖說是一本面試書,但如果把前面十幾頁扯掉的話,我更願意把它看作是一本講解題思維的演算法小品。在書中,作者通常是給出一個平常解法,然後再一次又一次的優化改進,你可以很清楚的看到基本的演算法設計思想是如何得到運用以解決實際問題的。如果你已經有了一些演算法的基礎,看完本書應該能使你的演算法應用能力得到一定的提高。另外,本書生動有趣,也同樣適合於初學者。
8. Fundamentals of Algorithmics 演算法基礎
也是很久之前在學校圖書館借來看的,內容記不太清楚了,只隱約記得此書的動態規劃章節猶為出彩。應該是很經典的一本書,個人以為足以和演算法導論等所謂當世經典平分秋色,但是怎麼好像被人提到的不多,或許是我孤陋寡聞了。
9. How to solve it 怎樣解題
二十世紀最偉大的數學思想家之一波利亞的力作,講一般性的解題方法:怎麼認識問題,怎麼轉換問題,怎麼解決問題,如何在問題中得到啟發,如何找到一個通往答案的方向。
10. Programming interviews exposed 程序員面試攻略
一本消遣之作。個人以為要比國內的某「XXX面試寶典」純粹一些,至少也有一些啟發性的內容,而不單單是面試題解庫。
11. Programming Pearls 編程珠璣
學習演算法不僅需要像Alogrithms,演算法導論這樣的重量級的內功心法,像《編程之美》、《編程珠璣》這樣的輕量級的輕功身法也必不可少。前些年網上不是很流行像「給你10億個數,找到最大的n個」或者「給你10億個數,找出現次數最多的那個數」之類的網路面試題嗎?看了此書你就知道怎麼解決了。相比於《編程之美》來說,本書中的示例技巧性略低一些,但是也更有實際應用價值一些。
12. 演算法藝術與信息學競賽
如果演算法導論是九陽神功,那這本無疑就是九陰真經。本書是專為參加一些諸如ACM之類程序設計比賽的同學而寫的,江湖人稱「黑書」。裡面講的都是一些在編程比賽中常用的演算法、數據結構,以及一些數論和計算幾何等。我雖然並不搞競賽,但也從此書中受益頗多。
13. An Introction to Probability Theory and Its Applications
准備看的,現在才發現概率論有多麼重要,可惜本科的時候沒有好好學。前不久一個同學問我個問題,我半天弄了一個程序給他,他說:這里就不是相關系數么,Excel一下就完事!我暈,我還真不知道那就是相關系數。
14. Numerical Analysis
這本的作者是Richard L. Burden,J. Douglas Faires
數值分析,討論各種數值演算法,比如插值、擬合、積分、微分方程的求解、線性和非線性方程組求解等。准備詳細看。
15. TAOCP 計算機程序設計藝術
傳說中的TAOCP,說的人多,看的人少。TAOCP四卷堪稱是演算法藏經閣中的易筋經或者是少林七十二絕技。天下武學,盡出少林,天下演算法,盡出TAOCP也。這點你可以順便翻開一本演算法書看看他的引用文獻就知道了。我只讀了第四卷的部分章節,前三卷暫時還沒敢看,還在讀書計劃表中被無限期擱置。

㈨ C語言進階學習有哪些經典書籍

《C語言程序設計》
作者:郭有強 編
出 版 社:清華大學出版社

評價:書很利索,該有的都有,如果你還沒有一本滿意的C語言課本,買它沒錯。(也可以閱讀外國的經典C語言書籍)

《C和指針》
POINTERS ON C Kenneth A.Reek、
徐波 人民郵電出版社

評價:不算厚的書,糾正對指針的錯誤理解,這是必讀經典,相信會帶給你很多思考。(單單一本還不夠,繼續往後看)

《C陷阱與缺陷》
Andrew Koenig、 高巍
人民郵電出版社

評價:172頁,應當1-2天看完,讀完豁然開朗,對C語言常見的陷阱進行剖析,必須經典。

《C專家編程》
Expert C Programming Deep C Secrets Peter Van
Der Linden 人民郵電出版社 (2008-02出版)

評價:200多頁,應當2天左右看完,本書讀起來很舒坦,不可多得的好書,帶你領略語法之外的奧秘,必讀經典。

②數據結構與演算法:

《清華大學計算機系列教材•數據結構(C語言版)(附光碟1張)》
吳偉民、 嚴蔚敏
清華大學出版社

評價:數據結構都是類C的偽代碼描述,初次接觸編程的同學可能理解不了,我也一樣。我是看嚴蔚敏視頻學會的數據結構,希望這個辦法對你們也同樣有效。

《計算機演算法設計與分析(第3版)》
王曉東
電子工業出版社

評價:這是我們的課本,不過的確是學習它才把數據結構和演算法入門了,為後面進階做了鋪墊。

《演算法藝術與信息學競賽•演算法競賽入門經典》
劉汝佳
清華大學出版社

評價:了解數據結構怎麼用,常用演算法與思想,書不厚,但很給力。初學可能有障礙,但這的確是入門經典書籍,請不要放棄。

《演算法導論(原書第2版)》
科曼(Cormen T.H.)、等、 潘金貴
機械工業出版社 (2006-09出版)

評價:經典中的經典,無需多說,不要問我看哪些內容,負責任的說:有能力就多看點,其實都能看懂,書中的內容與思想將會終身受用。

《編程之美:微軟技術面試心得 》
《編程之美》小組
電子工業出版社

評價:微軟出品,像是一本小故事集,將數學和編程之美展露無疑,學起來很輕松,反復回顧收獲頗豐。

《編程珠璣(第2版)》
Jon Bentley、黃倩、 錢麗艷
人民郵電出版社

評價:主要是數據結構和演算法,都是常用的內容,不過作者思維新奇,跟隨作者一起思考會碰撞出不少火花,評價非常高的一本書,本人沒有順序閱讀,感興趣的內容翻了翻。

《演算法藝術與信息學競賽 》
劉汝佳
清華大學出版社

評價:放在最後,因為此書的確很專業,我這點智商也駕馭不了,信息學競賽必備。

《程序員面試寶典(第3版)》
歐立奇、劉洋、 段韜
電子工業出版社

評價:這本書很神奇,大二下學期的時候我就買了並看完了,等到大三找工作的時候發現里邊的提到的陷阱題目還是有點意思的,C語言掌握的怎麼樣拿這本書驗一驗就知道了。

《數學之美》
(《浪潮之巔》作者吳軍最新力作,李開復作序推薦,Google黑板報百萬點擊)

閱讀全文

與演算法競賽寶典3相關的資料

熱點內容
美圖秀在線壓縮圖片 瀏覽:182
蘋果自帶控制app是什麼 瀏覽:904
孩子學編程怎麼樣 瀏覽:586
網路編程經典書籍 瀏覽:612
曲靖創建網站java程序員 瀏覽:690
256位加密中是什麼意思 瀏覽:97
php多維數組去重 瀏覽:308
做程序員這一行儲備人才怎麼看 瀏覽:460
參加密逃文 瀏覽:327
蘋果編程語言ios 瀏覽:763
求解病態系統常用的演算法 瀏覽:993
駕校用的app叫什麼 瀏覽:219
數控編程線的纏繞方法 瀏覽:972
安卓線性布局怎麼設計計算器布局 瀏覽:24
拓本pdf 瀏覽:79
2017法碩指南pdf 瀏覽:295
linuxphp命令參數 瀏覽:425
可靠性預測和推薦演算法 瀏覽:855
程序員送女友的相冊 瀏覽:255
壓縮文件怎麼設置打開加密 瀏覽:768