freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

社團(tuán)算法總結(jié)(編輯修改稿)

2025-10-13 19:49 本頁面
 

【文章內(nèi)容簡介】 urn from。}void qsort(int a[],int from,int to){ int pivottag。if(from{pivottag=partitions(a,from,to)。qsort(a,from,pivottag1)。qsort(a,pivottag+1,to)。} scanf(“%d”,amp。n)。for(i=1。i三、刪數(shù)字(貪心)include include void main(){int a[11]={3,0,0,0,9,8,1,4,7,5,1}。int k=0,i=0,j。int m。while(i{printf(“%d ”,a[i])。i++。}printf(“n please input delete number:”)。四、全排列(遞歸)include A(char a[],int k,int n){int i。char temp。if(k==n)for(i=0。i{printf(“%c ”,a[i])。} else {for(i=k。i{ temp=a[i]。a[i]=a[k]。a[k]=temp。A(a,k+1,n)。} } } main(){int n。char a[4]={39。a39。,39。b39。,39。c39。,39。d39。},temp。A(a,0,3)。getch()。return 0。}五、多段圖(動(dòng)態(tài)規(guī)劃)include “”define n 12 //圖的頂點(diǎn)數(shù){ while(from=value)to。scanf(“%d”,amp。m)。for(k=0。k{for(i=0。i{if(a[i]a[i+1]){for(j=i。j{a[j]=a[j+1]。}break。//滿足條件就跳轉(zhuǎn)}} }int quicksort(int a[],int n){qsort(a,0,n)。}}printf(“the change numbers:”)。for(i=0。i{if(a[i]!=0){ printf(“%d ”,a[i])。}}}define k 4 //圖的段數(shù) define MAX 23767 int cost[n][n]。//成本值數(shù)組int path[k]。//存儲(chǔ)最短路徑的數(shù)組void creatgraph()//創(chuàng)建圖的(成本)鄰接矩陣 { int i,j。for(i=0。ifor(j=0。jscanf(“%d”,amp。cost[i][j])。//獲取成本矩陣數(shù)據(jù) }void printgraph()//輸出圖的成本矩陣 { int i,j。printf(“成本矩陣:n”)。for(i=0。i{ for(j=0。jprintf(“%d ”,cost[i][j])。printf(“n”)。} }//使用向前遞推算法求多段圖的最短路徑 void FrontPath(){ int i,j,length,temp,v[n],d[n]。for(i=0。iv[i]=0。for(i=n2。i=0。i){ for(length=MAX,j=i+1。jif(cost[i][j]0 amp。amp。(cost[i][j])+v[j]{length=cost[i][j]+v[j]。temp=j。}v[i]=length。d[i]=temp。}path[0]=0。//起點(diǎn)path[k1]=n1。//最后的目標(biāo)for(i=1。i//使用向后遞推算法求多段圖的最短路徑void BackPath(){ int i,j,length,temp,v[n],d[n]。for(i=0。ifor(i=1。i{ for(length=MAX,j=i1。j=0。j)if(cost[j][i]0 amp。amp。(cost[j][i])+v[j]{length=cost[j][i]+v[j]。temp=j。}v[i]=length。d[i]=temp。}path[0]=0。path[k1]=n1。for(i=k2。i=1。i)(path[i])=d[path[i+1]]。}//輸出最短路徑序列 void printpath(){ int i。for(i=0。iprintf(“%d ”,path[i])。}main(){ freopen(“E:”,“r”,stdin)。creatgraph()。printgraph()。FrontPath()。printf(“輸出使用向前遞推算法所得的最短路徑:n”)。printpath()。printf(“n輸出使用向后遞推算法所得的最短路徑:n”)。BackPath()。printpath()。printf(“n”)。}六、背包問題(遞歸)int knap(int m, int n){int x。x=mmn。if x0sign=1。else if x==0sign=0。elsesign=1。switch(sign){case 0: knap=1。break。case 1: if(n1)if knap(mmn,n1)knap=1。elseknap= knap(m,n1)。elseknap=0。case1: if(n1)knap= knap(m,n1)。elseknap=0。} }七、8皇后(回溯)include include define N 4 int place(int k, int X[N+1]){int i。i=1。while(iif((X[i]==X[k])||(abs(X[i]X[k])==abs(ik)))return 0。i++。}return 1。}void Nqueens(int X[N+1]){int k, i。X[1]=0。k=1。while(k0){X[k]=X[k]+1。while((X[k]X[k]=X[k]+1。if(X[k]if(k==N){ for(i=1。iprintf(“%3d”,X[i])。printf(“n”)。}else{ k=k+1。X[k]=0。}else k=k1。} }void main(){int n, i。int X[N+1]={0}。clrscr()。Nqueens(X)。printf(“The end!”)。}八、圖著色(回溯)include define N 5 int X[N]={0,0,0,0,0}。int GRAPH[N][N]={ {0,1,1,1,0},{1,0,1,1,1},{1,1,0,1,0},{1,1,1,0,1},{0,1,0,1,0} }。int M=4。int count=0。int mcoloring(int k){int j,t。while(1){nextValue(k)。if(X[k]==0)return 0。if(k==(N1)){for(t=0。tprintf(“%3d”,X[t])。printf(“n”)。count++。}elsemcoloring(k+1)。} } int nextValue(int k){int j。while(1){X[k]=(X[k]+1)%(M+1)。if(X[k]==0)return 0。for(j=0。jif((GRAPH[k][j]==1)amp。amp。(X[k]==X[j]))break。}if(j==N){return 0。}} } void main(){int k。clrscr()。k=0。mcoloring(k)。printf(“ncount=%dn”,count)。}矩陣鏈乘法(動(dòng)態(tài)規(guī)劃)n 符號(hào)S[i, j]的意義:符號(hào)S(i, j)表示,使得下列公式右邊取最小值的那個(gè)k值public static void matrixChain(int [ ] p, int [ ][ ] m, int [ ][ ] s){int n=。for(int i = 1。i for(int r = 2。r for(int i = 1。i int j=i+r1。m[i][j] = m[i+1][j]+ p[i1]*p[i]*p[j]。s[i][j] = i。for(int k = i+1。k j。k++){int t = m[i][k] + m[k+1][j] + p[i1]*p[k]*p[j]。if(t m[i][j]){m[i][j] = t。s[i][j] = k。}}}}O的定義:如果存在兩個(gè)正常數(shù)c和n0,對(duì)于所有的n≥n0時(shí),有:|f(n)|≤c|g(n)|,稱函數(shù)f(n)當(dāng)n充分大時(shí)的階比g(n)低,記為f(n)=O(g(n))。計(jì)算時(shí)間f(n)的一個(gè)上界函數(shù) Ω的定義:如果存在正常數(shù)c和n0,對(duì)于所有n≥n0時(shí),有:|f(n)|≥c|g(n)|,則稱函數(shù)f(n)當(dāng)n充分大時(shí)下有界,且g(n)是它的一個(gè)下界,即f(n)的階不低于g(n)的階。記為:f(n)=Ω(g(n))。Θ的定義:如果存在正常數(shù)c1,c2和n0,對(duì)于所有的nn0,有:c1|g(n)|≤f(n)≤c2|g(n)|,則記f(n)=Θ(g(n))意味著該算法在最好和最壞的情況下計(jì)算時(shí)間就一個(gè)常因子范圍內(nèi)而言是相同的。(1)多項(xiàng)式時(shí)間算法:O(1)(2)指數(shù)時(shí)間算法:O(2n)Move(n,n+1)(2n+1,2n+2)move(2n1,2n)(n,n+1)call chess(n1)貪心方法基本思想:貪心算法總是作出在當(dāng)前看來最好的選擇。也就是說貪心算法并不從整體最優(yōu)考慮,它所作出的選擇只是在某種意義上的局部最優(yōu)選擇所求問題的整體最優(yōu)解可以通過一系列局部最優(yōu)的選擇,即貪心選擇來達(dá)到。這是貪心算法可行的第一個(gè)基本要素,也是貪心算法與動(dòng)態(tài)規(guī)劃算法的主要區(qū)別。多段圖:COST[j]=c(j,r)+COST[r]?;厮莘ǎ?假定集合Si的大小是mi)不斷地用修改過的規(guī)范函數(shù)Pi(x1,…,xi)去測(cè)試正在構(gòu)造中的n元組的部分向量(x1,…,xi),看其是否可能導(dǎo)致最優(yōu)解。如果判定(x1,…,xi)不可能導(dǎo)致最優(yōu)解,那么就將可能要測(cè)試的mi+1…mn個(gè)向量略去。約束條件:(1)顯式約束:限定每一個(gè)xi只能從給定的集合Si上取值。(2)解空間:對(duì)于問題的一個(gè)實(shí)例,解向量滿足顯式約束條件的所有多元組,構(gòu)成了該實(shí)例的一個(gè)解空間。(3)隱式約束:規(guī)定解空間中實(shí)際上滿足規(guī)范函數(shù)的元組,描述了xi必須彼此相關(guān)的情況?;咀龇ǎ涸趩栴}的解空間樹中,按深度優(yōu)先策略,從根結(jié)點(diǎn)出發(fā)搜索解空間樹。算法搜索至解空間樹的任意一點(diǎn)時(shí),先判斷該結(jié)點(diǎn)是否包含問題的解:如果肯定不包含,則跳過對(duì)該結(jié)點(diǎn)為根的子樹的搜索,逐層向其祖先結(jié)點(diǎn)回溯;否則,進(jìn)入該子樹,繼續(xù)按深度優(yōu)先策略搜索。8皇后問題約束條件限界函數(shù):子集和數(shù)問題:約束條件限界函數(shù):回溯法--術(shù)語:活結(jié)點(diǎn):已生成一個(gè)結(jié)點(diǎn)而它的所有兒子結(jié)點(diǎn)還沒有全部生成的結(jié)點(diǎn)稱為活結(jié)點(diǎn)。E結(jié)點(diǎn):當(dāng)前正在生成其兒子結(jié)點(diǎn)的活結(jié)點(diǎn)叫E結(jié)點(diǎn)。死結(jié)點(diǎn):不再進(jìn)一步擴(kuò)展或其兒子結(jié)點(diǎn)已全部生成的結(jié)點(diǎn)稱為死結(jié)點(diǎn)。使用限界函數(shù)的深度優(yōu)先節(jié)點(diǎn)生成的方法成為回溯法;E結(jié)點(diǎn)一直保持到死為止的狀態(tài)生成的方法 稱之為分支限界方法且用限界函數(shù)幫助避免生成不包含答案結(jié)點(diǎn)子樹的狀態(tài)空間的檢索方法。區(qū)別:分支限界法本質(zhì)上就是含有剪枝的回溯法,根據(jù)遞歸的條件不同,是有不同的時(shí)間復(fù)雜度的。回溯法深度優(yōu)先搜索堆?;蚬?jié)點(diǎn)的所有子節(jié)點(diǎn)被遍歷后才被從棧中彈出找出滿足約束條件的所有解分支限界法廣度優(yōu)先或最小消耗優(yōu)先搜索隊(duì)列,優(yōu)先隊(duì)列每個(gè)結(jié)點(diǎn)只有一次成為活結(jié)點(diǎn)的機(jī)會(huì)找出滿足約束條件下的一個(gè)解或特定意義下的最優(yōu)解一般如果只考慮時(shí)間復(fù)雜度二者都是指數(shù)級(jí)別的可是因?yàn)榉种藿绶ù嬖谥鞣N剪枝,用起來時(shí)間還是很快的int
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1