實用演算法的分析與程序設計
㈠ 信息學里那個黑書是什麼啊
吳文虎、王建德編著的《實用演算法的分析與程序設計》另一本由劉汝佳、黃亮編著的《演算法藝術與信息學競賽》信息學兩本著名的黑書,本人只看過第二本,的確受益匪淺。
㈡ 關於演算法與程序設計
三類錯誤類型:編譯錯誤,邏輯錯誤和運行錯誤
1. 編譯錯誤
編譯錯誤是指在程序編譯過程中出現的錯誤。通常是由於不正確書寫代碼而產生的。 2. 運行錯誤�
運行時的錯誤是指應用程序在運行期間執行了非法操作所發生的錯誤。 3. 邏輯錯誤�
邏輯錯誤使程序運行時得不到預期的結果。這種程序沒有語法錯誤,也能運行,但卻得不到正確的結果。 32題應該就是txt(我試過可以打開) vbp和frm(這兩個肯定有) 常見的程序設計語言 ActionScript APL、A+和J Ada 匯編語言 AWK Basic、Fortran VBScript Brainfuck C、C++ C# Clipper COBOL dBase PASCAL、Delphi Forth FoxPro F# Fava IDL java JavaScript J# LISP Lua LOGO Mola Nuva Perl PHP PL/I Prolog Python R Ruby Scheme Smalltalk SQL Tcl/Tk Visual Basic Visual FoxPro XML 1 變數必須是以字母、漢字開頭的字母、漢字、數字、下劃線組成的字元串,且第一個字元必須是 英文字母,最後一個字元可以是類型說明符 2 變數名的有效字元為255個 3 不能用 Visual Basic 的保留字作為變數名,但可以把保留字嵌入變數名中。同時變數名也不能是末尾帶有說明符的保留字 4 Visual Basic 不區分變數名和其他名字中字母的大小寫,但習慣上,符號常量一般用大寫字母定義所以34題應選BC
㈢ 《演算法分析與設計》課程講什麼內容
《演算法分析與設計》課程是理論性與應用性並重的專業課程。本課程以演算法設計策略為知識單元,系統地介紹計算機演算法的設計方法和分析技巧。課程教學主要內容包括:第一章,演算法概述;第二章,遞歸與分治策略;第三章,動態規劃;第四章,貪心演算法;第五章,回溯法;第六章,分支限界法。通過介紹經典以及實用演算法讓同學掌握演算法設計的基本方法。結合實例分析,讓同學深入理解演算法設計的技巧,以及分析演算法的能力。
㈣ 演算法分析程序設計,用c語言
第一題
#include<stdlib.h>
#include<stdio.h>
intmain(intargc,char**argv)
{
intnum[1000];
intmin=10000;
inti;
for(i=0;i<2000;i++)
{
num[i]=rand()%10000;
if(num[i]<min)min=num[i];
}
printf("Theminnumberis%d ",min);
return0;
}
第二題歸並排序
#include<stdlib.h>
#include<stdio.h>
voidMerge(intsourceArr[],inttempArr[],intstartIndex,intmidIndex,intendIndex)
{
inti=startIndex,j=midIndex+1,k=startIndex;
while(i!=midIndex+1&&j!=endIndex+1)
{
if(sourceArr[i]>sourceArr[j])
tempArr[k++]=sourceArr[i++];
else
tempArr[k++]=sourceArr[j++];
}
while(i!=midIndex+1)
tempArr[k++]=sourceArr[i++];
while(j!=endIndex+1)
tempArr[k++]=sourceArr[j++];
for(i=startIndex;i<=endIndex;i++)
sourceArr[i]=tempArr[i];
}
//內部使用遞歸
voidMergeSort(intsourceArr[],inttempArr[],intstartIndex,intendIndex)
{
intmidIndex;
if(startIndex<endIndex)
{
midIndex=(startIndex+endIndex)/2;
MergeSort(sourceArr,tempArr,startIndex,midIndex);
MergeSort(sourceArr,tempArr,midIndex+1,endIndex);
Merge(sourceArr,tempArr,startIndex,midIndex,endIndex);
}
}
intmain(intargc,char*argv[])
{
inta[8]={50,10,20,30,70,40,80,60};
inti,b[8];
MergeSort(a,b,0,7);
for(i=0;i<8;i++)
printf("%d",a[i]);
printf(" ");
return0;
}
第三題快速排序
#include<iostream>
usingnamespacestd;
voidQsort(inta[],intlow,inthigh)
{
if(low>=high)
{
return;
}
intfirst=low;
intlast=high;
intkey=a[first];/*用字表的第一個記錄作為樞軸*/
while(first<last)
{
while(first<last&&a[last]>=key)
{
--last;
}
a[first]=a[last];/*將比第一個小的移到低端*/
while(first<last&&a[first]<=key)
{
++first;
}
a[last]=a[first];
/*將比第一個大的移到高端*/
}
a[first]=key;/*樞軸記錄到位*/
Qsort(a,low,first-1);
Qsort(a,first+1,high);
}
intmain()
{
inta[]={57,68,59,52,72,28,96,33,24};
Qsort(a,0,sizeof(a)/sizeof(a[0])-1);/*這里原文第三個參數要減1否則內存越界*/
for(inti=0;i<sizeof(a)/sizeof(a[0]);i++)
{
cout<<a[i]<<"";
}
return0;
}
㈤ 推薦幾本關於C語言的學習的書
1.<<實用演算法的分析與程序設計>>下載地址:
實用演算法的分析與程序設計&dt=1002002&ps=0_0&rt=0kbs&plt=0
2.關於初賽選擇填空題,這里整理了很多
2.初賽的話,做c語言練習題就可以了,最好是那種有講解的書。
復賽的話,要有點演算法基礎,建議看
《演算法設計與分析》演算法設計與分析&dt=1002002&ps=0_0&rt=0kbs&plt=0
《演算法藝術與信息學奧賽》
3.c語言嘛,是大學工科必修課,不過以後搞軟體的用的不多,畢竟還有很多高級語言,但C語言在底層應用很廣,比如嵌入式開發,游戲開發。可以理解為比較接近硬體的語言。它也是學習其他高級語言的基礎。別擔心,它不會過時的。
另外,java不適合做奧賽,效率太低,代碼太多。
㈥ 實用演算法的分析與程序設計有沒有C語言版的啊
你到狗狗上去看看很多的
gougou.com
㈦ 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)信息學初學者之家:http://oibh.ioiforum.org/
(2)大榕樹編程世界:http://www.fjsdfz.org/~drs/program/default.asp
(3)中國教育曙光網:http://www.chinaschool.org/aosai/
(4)福建信息學奧林匹克:http://www.cfcs.com.cn/fjas/index.htm
(5)第20屆全國青少年信息學奧林匹克競賽:http://www.noi2003.org/
(6)第15屆國際青少年信息學奧林匹克競賽:http://www.ioi2003.org/
(7)全美計算機奧林匹克競賽:http://ace.delos.com/usacogate
(8)美國信息學奧林匹克競賽官方網站:http://www.usaco.org/
(9)俄羅斯Ural州立大學:http://acm.timus.ru/
(10)西班牙Valladolid大學:http://acm.uva.es/problemset
(11)ACM-ICPC:http://icpc.baylor.e/icpc/
(12)北京大學:http://acm.pku.e.cn/JudgeOnline/index.acm
(13)浙江大學:http://acm.zju.e.cn/
(14)IOI:http://olympiads.win.tue.nl/ioi/
(15)2003年江蘇省信息學奧林匹克競賽夏令營:http://jsoi.czyz.com.cn
(16)http://acm.zju.e.cn
(17)http://acm.zsu.e.cn
(18)www.shumo.com
(19)http://www.bepark.com/downldmanag/index.asp
(20)http://www.yh01.com colin_fox/colin_fox
五 如何備戰ACM/ICPC
1,個人准備(演算法書,習題集,網上做題和討論)
2,1000題=亞洲冠軍=世界決賽
3,做好資料收集和整理工作
㈧ 關於演算法的教材
推薦《演算法導論》(Introction to Algorithms)
是絕對的經典 而且推薦英文版的
不過是類pascal語言描述,不過應該也很好懂的
中文版的第二版應該是 機械工業出版社
英文影印版的 是 高等教育出版社 The MIT Press
作者 Thomas H.Cormen
Charles E.Leiserson
Ronald L.Rivest
Clifford Stein
還有《The Art of Computer Programming Volumes》1-3
據說也是絕對的經典,雖然我沒有看過 作者是Donald E. Knuth
還有一本《實用演算法的分析與程序設計》(吳文虎,王建德著,電子工業出版社)
還看過一本叫 演算法基礎 的(貌似也是清華大學出版社)比較垃圾 不推薦
㈨ 參加ACM競賽需要用的參考書
ACM國際大學生程序設計競賽:知識與入門.pdf
鏈接: https://pan..com/s/19OY2FJUkk4RhW5WTsPkwfQ
《ACM國際大學生程序設計競賽:知識與入門》適用於參加ACM國際大學生程序設計競賽的本科生和研究生,對參加青少年信息學奧林匹克競賽的中學生也很有指導價值。
㈩ 實用演算法的分析與程序設計黑皮書電子版
實用演算法的分析與程序設計 10.7M PDF
迅雷:
www.gougou.com/search?search=%e5%ae%9e%e7%94%a8%e7%ae%97%e6%b3%95%e7%9a%84%e5%88%86%e6%9e%90%e4%b8%8e%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1&id=