国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【期末復(fù)習(xí)】計(jì)算機(jī)算法設(shè)計(jì)與分析

這篇具有很好參考價(jià)值的文章主要介紹了【期末復(fù)習(xí)】計(jì)算機(jī)算法設(shè)計(jì)與分析。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

小編相信大家都很急切,要如何短時(shí)間學(xué)會(huì)算法通過考試呢?下面就讓樓主帶大家一起了解吧。

算法期末考試,其實(shí)就是算法期末考試了。那么小編為什么會(huì)算法期末考試,相信大家都很好奇是怎么回事。大家可能會(huì)感到很驚訝,小編怎么會(huì)算法期末考試呢?但事實(shí)就是這樣,樓主也感到非常驚訝。那么這就是關(guān)于算法期末考試的事情了,大家有沒有覺得很神奇呢?

看了今天的內(nèi)容,大家有什么想法呢?歡迎在評(píng)論區(qū)告訴樓主一起討論哦。


【考試內(nèi)容】

概念題:1~6章?
編程題:2~5章
參考文獻(xiàn)《計(jì)算機(jī)算法設(shè)計(jì)與分析(第五版)》王曉東 著


【概念題】

{ 期中考涉及內(nèi)容,期末再考可能不大 }

算法是指解決問題的一種方法或一個(gè)過程,是由若干條指令組成的有窮序列,滿足四個(gè)性質(zhì):
輸入:有零個(gè)或多個(gè)輸入;
輸出:產(chǎn)生至少一個(gè)結(jié)果;
確定性:每條指令清晰,無歧義;
有限性:每條指令執(zhí)行次數(shù)、執(zhí)行時(shí)間有限。

通常只考慮三種情況下的時(shí)間復(fù)雜性,即最好情況下、最壞情況下以及平均情況下的時(shí)間復(fù)雜性。實(shí)踐表明可操作性最好且最有實(shí)用價(jià)值的是 最壞情況下 下的時(shí)間復(fù)雜性。

動(dòng)態(tài)規(guī)劃算法的基本要素是最優(yōu)子結(jié)構(gòu)和重疊子問題性質(zhì)

以及若干讀代碼判斷時(shí)間復(fù)雜度的題,這個(gè)期末再考可能性很大!?。?/strong>

{ 書上一些概念型語句 }

遞歸的概念
直接或間接地調(diào)用自身的算法稱為遞歸算法。用函數(shù)自身給出定義的函數(shù)稱為遞歸函數(shù)。

分治法的基本思想
分治法的基本思想是將一個(gè)規(guī)模為n的問題分解為k個(gè)規(guī)模較小的子問題,這些子問題互相獨(dú)立且與原問題相同。遞歸地解這些子問題,然后將各子問題的解合并得到原問題的解。

動(dòng)態(tài)規(guī)劃算法
動(dòng)態(tài)規(guī)劃算法與分治法類似,其基本思想是將待求解問題分解成若干子問題,先求解子問題,再結(jié)合這些子問題的解得到原問題的解。與分治法不同的是,適合用動(dòng)態(tài)規(guī)劃法求解的問題經(jīng)分解得到的子問題往往不是互相獨(dú)立的。若用分治法來解這類問題,則分解得到的子問題數(shù)目太多,以致最后解決原問題需要耗費(fèi)指數(shù)級(jí)時(shí)間。

動(dòng)態(tài)規(guī)劃算法適用于解最優(yōu)化問題,通??砂匆韵?4 個(gè)步驟設(shè)計(jì):
① 找出最優(yōu)解的性質(zhì),并刻畫其結(jié)構(gòu)特征;
② 遞歸地定義最優(yōu)值;
③ 以自底向上的方式計(jì)算最優(yōu)值;
④根據(jù)計(jì)算最優(yōu)值時(shí)得到的信息,構(gòu)造最優(yōu)解。

貪心算法
顧名思義,貪心算法總是做出在當(dāng)前看來是最好的選擇。也就是說,貪心算法并不從整體最優(yōu)上加以考慮,所做的選擇只是在某種意義上的局部最優(yōu)選擇。當(dāng)然,我們希望貪心算法得到的最終結(jié)果也是整體最優(yōu)的。

回溯法(深度優(yōu)先搜索DFS)
回溯法有 “通用的解題法”之稱,可以系統(tǒng)地搜索一個(gè)問題的所有解或任一解,它是一個(gè)既帶有系統(tǒng)性又帶有跳躍性的搜索算法。

分支限界法(廣度優(yōu)先搜索BFS)
{ 第六章不考編程,故選擇可能會(huì)涉及 }
分支限界法類似回溯法,也是在問題的解空問上搜索問題解的算法。一般情況下,分支限界法與回溯法的求解目標(biāo)不同。回溯法的求解目標(biāo)是找出解空間中滿足約束條件的所有解,而分支限界法的求解目標(biāo)是找出滿足約束條件的一個(gè)解,或是在滿足約束條件的解中找出使某一目標(biāo)函數(shù)值達(dá)到極大或極小的解,即在某種意義下的最優(yōu)解。


【編程題】

[ 二分搜索 ]

這個(gè)必須會(huì)?。。?/span>

這里直接上代碼,沒什么好說的。
題目:在遞增數(shù)組a中查找x元素。

#include <iostream>
using namespace std;
const int N = 110005;
int main() {
	int n, a[N], x;
	cin >> n;
	for (int i=0; i<n; i++)
		cin >> a[i];
	cin >> x;
	while (x != 0) //x為0退出循環(huán) 
	{
		bool flag = 0;		//x是否在a數(shù)組標(biāo)志,0不存在,1存在 
		int left = 0;		//查找區(qū)間左端 
		int right = n-1;	//查找區(qū)間右端 
		while(left<=right)
		{
			int mid = (left+right)/2;	//取中值 
			if(a[mid] == x) 
			{
				flag = 1;
				break;		//若找到則退出循環(huán) 
			}
			if(a[mid] > x)
				right = mid-1;	//中值大于目標(biāo)值,目標(biāo)值在左半段 
			else
				left = mid+1;	//中值小于目標(biāo)值,目標(biāo)值在右半段 
		}
		if(flag == 0)
			cout<<"no"<<'\n';
		else
			cout<<"yes"<<'\n';
		cin >> x;
	}
}

進(jìn)階:浮點(diǎn)數(shù)的二分查找,涉及精度問題,可去CSDN搜索 “PIE問題” 。

[ 合并排序 ]

思想:將兩個(gè)有序的數(shù)組合成一個(gè)有序的數(shù)組解決問題。

題目:給定兩遞增數(shù)組a1和a2,求兩數(shù)組元素集合的中位數(shù)。

#include<iostream>
using namespace std;
const int N = 1e5; 

int main(){
    int n, a1[N], a2[N], a3[2*N];	//合并數(shù)組a3長度為a1和a2長度和
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a1[i];
    for(int i=0;i<n;i++)
        cin>>a2[i];
    int a,b,c;	 
    a=0,b=0,c=0;
    while(a<n && b<n)	//a1和a2數(shù)組都沒走完
	{
        if(a1[a]<a2[b])	//逐個(gè)比較a1和a2中元素大小,依次取小的存入a3 
		{
            a3[c]=a1[a];
            c++;
			a++; 
        }
        else
		{
            a3[c]=a2[b];
            c++;
            b++;
        }        
    }
    //必定有一個(gè)數(shù)組會(huì)走完,剩下數(shù)組里的數(shù)一定比a3數(shù)組里的數(shù)大
	//將剩下數(shù)組的數(shù)放入a3數(shù)組 
    while(a<n){
        a3[c]=a1[a];
        c++;
        a++;
    }
    while(b<n){
        a3[c]=a2[b];
        c++;
        b++;
    }
    cout<<a3[(c-1)/2]<<'\n';	//最終c的值就為a3的數(shù)組長度
    return 0; 
}

[ 快速排序 ]

書上的代碼如下,記憶。

//調(diào)用快排只需QuickSort(a,p,r)
//a為目的數(shù)組,p為數(shù)組起點(diǎn)下標(biāo)0,r為數(shù)組終點(diǎn)下標(biāo)n-1 
void QuickSort(int a[], int p, int r)
{
	if(p < r)
	{
		int q = Partition (a, p, r);
		QuickSort(a, p, q-1);
		QuickSort(a, q+1, r);
	}
}
int Partition(int a[], int p, int r)
{
	int i = p, j = r+1;
	int x = a[p];
	//x為主元
	while(true)
	{
		while(a[++i]<x && i<r);
		while(a[--j] > x);
		if(i >= j)
			break;
		swap(a[i],a[j]);
	}
	a[p] = a[j];
	a[j] = x;
	return j;
}

需要理解快排思想可去MOOC看北京航空航天大學(xué)的《算法設(shè)計(jì)與分析》

https://www.icourse163.org/course/BUAA-1449777166?tid=1463474515

課件 - 03分而治之篇II - 3.2快速排序 上

{ 期中考 } 查找第K小的數(shù)就是用的快排思想。

[ 動(dòng)態(tài)規(guī)劃 ]

必考題,思想比較靈活,建議是去刷網(wǎng)課然后自己做一遍。

課件 - 040506動(dòng)態(tài)規(guī)劃

[ 貪心算法 ]

有手就行,考到就是賺到??!

[ 回溯法DFS ]

期末重難點(diǎn),但其實(shí)會(huì)了0-1背包就沒問題了。

建議是抓個(gè)會(huì)的活人給你現(xiàn)場講解帶著寫一下。

這里上一道去年的期末題:

帶書計(jì)劃

【Description】

小明買到了他心儀的算法書。他打算帶著這些書回家,趁著假期好好學(xué)習(xí)一下算法。但是由于飛機(jī)上有行李重量的限制,大塊頭的計(jì)算機(jī)書籍都很重。小明想盡可能用滿行李重量的限額,在不超過限額的前提下,帶的書越重越好。辛辛苦苦學(xué)了一學(xué)期算法的你,能幫助小明找到最佳的解決方案嗎,告訴他可以帶哪些書嗎?

【Input】

第一行2個(gè)整數(shù),分別代表飛機(jī)重量的限制b(0< b < 1000)、書的數(shù)量n(0 < n < 100)。 下面n行,每行一個(gè)字符串和整數(shù),空格分隔,代表每本書的名稱和重量

【Output】

按書名的字典排序輸出多行,每行代表一本書。如果有多個(gè)答案,輸出字典序最小的答案。如果一本書都不能帶,輸出-1

【Sample Input】

20 4

introduction_algorithm 13

algorithm_training 6

data_struct 15

beauty_of_math 4

【Sample Output 】

algorithm_training

introduction_algorithm

【Hint】

《introduction_algorithm》《algorithm_training》和《data_struct》《beauty_of_math》兩種組合都可以獲得最大值,取字典序最小的按字典序輸出。

?題目難度還好,關(guān)鍵在于字典序的輸出,需要會(huì)對(duì)結(jié)構(gòu)體的排序。

代碼如下:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 1001;
int b,n,ans[N],cn,cv,Max;
vector<int> way;

struct node {
	string name;	//書名 
	int weight;		//書重 
}book[N];			//下標(biāo)表示書號(hào)

bool cmp(node A, node B)
{
	return A.name < B.name;
}

void Dfs(int t)		//當(dāng)前訪問書的書號(hào)t
{
	if(t>n)	//當(dāng)所有書籍都找完 
	{
		if(cv > Max)	//當(dāng)前存放量cv大于所記錄最大方案 
		{
			Max = cv;
			cn = way.size();	//總共拿了幾本書cn 
			int i=0;
			for(auto x:way)
			{
				ans[i] = x;		//將拿到的書的序號(hào)存到ans數(shù)組 
				i++;
			}
		}
		return;
	}
	if(cv+book[t].weight <= b)	//cv+book[t].weight如果加入下本書不會(huì)超容量 
	{
		cv += book[t].weight;	//拿書 
		way.push_back(t);		//記錄拿的幾號(hào)書 
		Dfs(t+1);				//回溯 
		cv -= book[t].weight;	//放回書 
		way.pop_back(); 		//刪去放回的書的記錄 
	}
	Dfs(t+1);	//當(dāng)前t號(hào)書不拿,考慮下一本 
	return;
}

int main()
{
	cin>>b>>n;	//輸入最大容量b ,書籍?dāng)?shù)目n 
	for(int i=1; i<=n; i++)
	{
		cin>>book[i].name>>book[i].weight;
	}
	sort(book+1,book+1+n,cmp);	//將書籍按字典序排序 
	
	Dfs(1);	//回溯法,深度優(yōu)先搜索
	
	if(Max == 0)	//最大方案為0,即沒有書籍 
	{
		cout<<"-1"<<'\n';
	}
	else
	{
		for(int i=0; i<cn; i++)	//輸出各書號(hào)對(duì)應(yīng)的書名 
			cout<<book[ans[i]].name<<'\n';
	}
	return 0;
}

【結(jié)語】

相信自己,算法期末,有手就行?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-435087.html

到了這里,關(guān)于【期末復(fù)習(xí)】計(jì)算機(jī)算法設(shè)計(jì)與分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 計(jì)算機(jī)視覺——期末復(fù)習(xí)(簡答題)

    1、計(jì)算機(jī)視覺與機(jī)器視覺的區(qū)別 計(jì)算機(jī)視覺是利用計(jì)算機(jī)實(shí)現(xiàn)人的視覺功能,即對(duì)客觀世界中三維場景的感知、加工、解釋,側(cè)重于場景分析和圖像解釋的理論和方法,而機(jī)器視覺更關(guān)注通過視覺傳感器獲取環(huán)境的圖像,構(gòu)建具有視覺感知功能的系統(tǒng),以及實(shí)現(xiàn)檢測和辨識(shí)

    2024年02月05日
    瀏覽(26)
  • 【期末考試】計(jì)算機(jī)組成原理突擊復(fù)習(xí)

    【期末考試】計(jì)算機(jī)組成原理突擊復(fù)習(xí)

    本文共 6個(gè)應(yīng)用題, 8個(gè)計(jì)算題, 12個(gè)簡答題 , 均是根據(jù)我們學(xué)校往年考試重點(diǎn)挑出來的, 看的快的話大概1個(gè)小時(shí)就能看完, 計(jì)算機(jī)組成原理突擊復(fù)習(xí)的話看課程和課本已經(jīng)不現(xiàn)實(shí)了, 知識(shí)點(diǎn)太多太雜, 看不過來的, 最好就是直接做題, 因?yàn)橹氐目键c(diǎn)就那幾種題目, 記住怎么做 就行

    2024年02月02日
    瀏覽(98)
  • 計(jì)算機(jī)視覺——期末復(fù)習(xí)(填空、名詞解釋)

    圖像文件: 指包含圖像數(shù)據(jù)的文件,文件內(nèi)除圖像數(shù)據(jù)本身以外,還有對(duì)圖像的描述信息等 距離變換: 特殊的變換,把二值圖像變換為灰度圖像 距離圖: 如果考慮目標(biāo)區(qū)域中的每個(gè)點(diǎn)與最接近的區(qū)域外的點(diǎn)之間的距離, 并用與距離成正比的灰度表示該點(diǎn)的灰度,那么這樣

    2024年02月11日
    瀏覽(56)
  • 計(jì)算機(jī)操作系統(tǒng)原理期末總復(fù)習(xí)

    計(jì)算機(jī)操作系統(tǒng)原理期末總復(fù)習(xí)

    1、現(xiàn)代操作系統(tǒng)的四個(gè)特征是什么?(4分) 并發(fā)、共享、虛擬、異步 并發(fā) :兩個(gè)或多個(gè)事件在 同一時(shí)間間隔內(nèi) 發(fā)生。 共享 :內(nèi)存中多個(gè)并發(fā)執(zhí)行的進(jìn)程共同使用系統(tǒng)中的資源。 2、操作系統(tǒng)內(nèi)核的四個(gè)主要功能是什么?(4分) 內(nèi)存管理、進(jìn)程管理、設(shè)備管理、文件管理

    2024年02月10日
    瀏覽(94)
  • 計(jì)算機(jī)系統(tǒng)基礎(chǔ)期末復(fù)習(xí)--袁春風(fēng)詳細(xì)版

    計(jì)算機(jī)系統(tǒng)基礎(chǔ)期末復(fù)習(xí)--袁春風(fēng)詳細(xì)版

    用“系統(tǒng)思維”分析問題 -21474836482147483647 (false)與事實(shí)不符?!why? 以下表達(dá)式如何呢? i2147483647 true!why? 在變化一下 -2147483647-12147483647 結(jié)果怎么樣? 第二個(gè)例子 當(dāng)len=0時(shí)調(diào)用sum函數(shù)時(shí),其返回值是多少? 出現(xiàn)訪存異常。但當(dāng)len為int類型時(shí),則正常。why? 若x和y為int類型,

    2024年02月11日
    瀏覽(26)
  • 【信息系統(tǒng)安全/計(jì)算機(jī)系統(tǒng)安全】期末復(fù)習(xí)(HITWH)

    【信息系統(tǒng)安全/計(jì)算機(jī)系統(tǒng)安全】期末復(fù)習(xí)(HITWH)

    信息系統(tǒng)安全期末復(fù)習(xí)重點(diǎn)總結(jié): 目錄 第一章 緒論 第二章 安全認(rèn)證 填空題 第三章 訪問控制 填空題 第四章 安全審計(jì) 填空題 第五章 Windows操作系統(tǒng)安全 填空題 第六章 Linux操作系統(tǒng)安全 填空題 第七章 數(shù)據(jù)庫系統(tǒng)安全 填空題 第八章 信息系統(tǒng)安全測評(píng) 第九章 可信計(jì)算 ?

    2024年02月09日
    瀏覽(41)
  • 計(jì)算機(jī)視覺教程(第2版)1-8章期末復(fù)習(xí)

    計(jì)算機(jī)視覺教程(第2版)1-8章期末復(fù)習(xí)

    不全面,只針對(duì)我們老師畫的重點(diǎn)著重標(biāo)記的! 第一章 緒論 1.計(jì)算機(jī)視覺 用計(jì)算機(jī)實(shí)現(xiàn)人類的視覺功能,對(duì)客觀世界中三維場景的感知、加工和解釋。 2.圖像表達(dá)函數(shù) T(x,y,z,t,λ),xyz是空間變量,t是時(shí)間變量,λ是輻射的波長。 3.圖像文件格式 BMP 位圖,GIF圖像文件格式標(biāo)

    2024年02月11日
    瀏覽(26)
  • 計(jì)算機(jī)操作系統(tǒng)重點(diǎn)概念整理-第三章 進(jìn)程同步【期末復(fù)習(xí)|考研復(fù)習(xí)】

    計(jì)算機(jī)操作系統(tǒng)重點(diǎn)概念整理-第三章 進(jìn)程同步【期末復(fù)習(xí)|考研復(fù)習(xí)】

    計(jì)算機(jī)操作系統(tǒng)復(fù)習(xí)系列文章傳送門: 第一章 計(jì)算機(jī)系統(tǒng)概述 第二章 進(jìn)程管理 第三章 進(jìn)程同步 第四章 內(nèi)存管理 第五章 文件管理 第六章 輸出輸出I/O管理 給大家整理了一下計(jì)算機(jī)操作系統(tǒng)中的重點(diǎn)概念,以供大家期末復(fù)習(xí)和考研復(fù)習(xí)的時(shí)候使用。 參考資料是王道的計(jì)算

    2024年02月08日
    瀏覽(28)
  • 計(jì)算機(jī)操作系統(tǒng)重點(diǎn)概念整理-第二章 進(jìn)程管理【期末復(fù)習(xí)|考研復(fù)習(xí)】

    計(jì)算機(jī)操作系統(tǒng)重點(diǎn)概念整理-第二章 進(jìn)程管理【期末復(fù)習(xí)|考研復(fù)習(xí)】

    計(jì)算機(jī)操作系統(tǒng)復(fù)習(xí)系列文章傳送門: 第一章 計(jì)算機(jī)系統(tǒng)概述 第二章 進(jìn)程管理 第三章 進(jìn)程同步 第四章 內(nèi)存管理 第五章 文件管理 第六章 輸出輸出I/O管理 給大家整理了一下計(jì)算機(jī)操作系統(tǒng)中的重點(diǎn)概念,以供大家期末復(fù)習(xí)和考研復(fù)習(xí)的時(shí)候使用。 參考資料是王道的計(jì)算

    2024年02月08日
    瀏覽(35)
  • 計(jì)算機(jī)視覺教程(第三版)期末復(fù)習(xí)筆記 第一章(定義、圖像顯示和表達(dá)、像素鄰域)

    計(jì)算機(jī)視覺教程(第三版)期末復(fù)習(xí)筆記 第一章(定義、圖像顯示和表達(dá)、像素鄰域)

    計(jì)算機(jī)視覺教程(微課版 第3版) 作者:?章毓晉 出版社:?人民郵電出版社 不一定全,只針對(duì)我們期末畫的范圍,只有一到六章。 目錄 第一章 緒論 一、計(jì)算機(jī)視覺的定義 1. 視覺 2. 計(jì)算機(jī)視覺 二、常見的應(yīng)用領(lǐng)域 三、圖像的顯示方式 1. 圖像表達(dá) 2. 圖像顯示設(shè)備 3. 表達(dá)和顯

    2024年02月01日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包