-
[輸入]
圖的頂點(diǎn)個數(shù)N,圖中頂點(diǎn)之間的關(guān)系及起點(diǎn)A和終點(diǎn)B
[輸出]
若A到B無路徑,則輸出“There is no path” 否則輸出A到B路徑上個頂點(diǎn)
[存儲結(jié)構(gòu)]
圖采用鄰接矩陣的方式存儲。
[算法的基本思想]
采用廣度優(yōu)先搜索的方法,從頂點(diǎn)A開始,依次訪問與A鄰接的頂點(diǎn)VA1,VA2,...,VAK, 訪問遍之后,若沒有訪問B,則繼續(xù)訪問與VA1鄰接的頂點(diǎn)VA11,VA12,...,VA1M,再訪問與VA2鄰接頂點(diǎn)...,如此下去,直至找到B,最先到達(dá)B點(diǎn)的路徑,一定是邊數(shù)最少的路徑。實(shí)現(xiàn)時采用隊(duì)列記錄被訪問過的頂點(diǎn)。每次訪問與隊(duì)頭頂點(diǎn)相鄰接的頂點(diǎn),然后將隊(duì)頭頂點(diǎn)從隊(duì)列中刪去。若隊(duì)空,則說明到不存在通路。在訪問頂點(diǎn)過程中,每次把當(dāng)前頂點(diǎn)的序號作為與其鄰接的未訪問的頂點(diǎn)的前驅(qū)頂點(diǎn)記錄下來,以便輸出時回溯。
#include<stdio.h>
int number //隊(duì)列類型
typedef struct{
int q[20]
標(biāo)簽:
輸入
上傳時間:
2015-11-16
上傳用戶:ma1301115706
-
Floyd-Warshall算法描述
1)適用范圍:
a)APSP(All Pairs Shortest Paths)
b)稠密圖效果最佳
c)邊權(quán)可正可負(fù)
2)算法描述:
a)初始化:dis[u,v]=w[u,v]
b)For k:=1 to n
For i:=1 to n
For j:=1 to n
If dis[i,j]>dis[i,k]+dis[k,j] Then
Dis[I,j]:=dis[I,k]+dis[k,j]
c)算法結(jié)束:dis即為所有點(diǎn)對的最短路徑矩陣
3)算法小結(jié):此算法簡單有效,由于三重循環(huán)結(jié)構(gòu)緊湊,對于稠密圖,效率要高于執(zhí)行|V|次Dijkstra算法。時間復(fù)雜度O(n^3)。
考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個判斷I,j是否有通路的矩陣。更簡單的,我們可以把dis設(shè)成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍(lán)色部分,可以更直觀地得到I,j的連通情況。
標(biāo)簽:
Floyd-Warshall
Shortest
Pairs
Paths
上傳時間:
2013-12-01
上傳用戶:dyctj
-
編寫一個用SOR法解方程組Ax=b的計(jì)算機(jī)程序,其中
要求程序中不存系數(shù)A,分別對不同的階數(shù)(例如n=15,80)取w=1.7,1.8,1.9,進(jìn)行迭代,記錄近似解 達(dá)到 時所用迭代次數(shù)k,觀察松弛因子對收斂速度的影響。
標(biāo)簽:
SOR
Ax
編寫
方程
上傳時間:
2013-12-25
上傳用戶:wcl168881111111
-
5.22④ 假設(shè)系數(shù)矩陣A和B均以三元組表作為存儲結(jié)構(gòu)。
試寫出滿足以下條件的矩陣相加的算法:假設(shè)三元組表A
的空間足夠大,將矩陣B加到矩陣A上,不增加A、B之外
的附加空間,你的算法能否達(dá)到O(m+n)的時間復(fù)雜度?其
中m和n分別為A、B矩陣中非零元的數(shù)目。
標(biāo)簽:
5.22
矩陣
三元
系數(shù)
上傳時間:
2013-12-13
上傳用戶:coeus
-
3.畫橢圓ellipse
4.利用ellipse and rectangle 畫圖
5.一個最優(yōu)美的圖案
6.輸入3個數(shù)a,b,c,按大小順序輸出
:輸入數(shù)組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數(shù)組。
7.有n個整數(shù),使其前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前面的m個數(shù)
標(biāo)簽:
ellipse
rectangle
and
橢圓
上傳時間:
2016-11-16
上傳用戶:royzhangsz
-
溫度華氏轉(zhuǎn)變攝氏
#include <stdio.h>
#include <stdlib.h>
enum x {A,B,C,D,E}
int main(void)
{
int a=73,b=85,c=66
{
if (a>=90)
printf("a=A等級!!\n")
else if (a>=80)
printf("73分=B等級!!\n")
else if (a>=70)
printf("73分=C等級!!\n")
else if (a>=60)
printf("73分=D等級!!\n")
else if (a<60)
printf("73分=E等級!!\n")
}
{
if (b>=90)
printf("b=A等級!!\n")
else if (b>=80)
printf("85分=B等級!!\n")
else if (b>=70)
printf("85分=C等級!!\n")
else if (b>=60)
printf("85分=D等級!!\n")
else if (b<60)
printf("85分=E等級!!\n")
}
{
if (c>=90)
printf("c=A等級!!\n")
else if (c>=80)
printf("66分=B等級!!\n")
else if (c>=70)
printf("66分=C等級!!\n")
else if (c>=60)
printf("66分=D等級!!\n")
else if (c<60)
printf("66分=E等級!!\n")
}
system("pause")
return 0
}
標(biāo)簽:
include
stdlib
stdio
gt
上傳時間:
2014-11-10
上傳用戶:wpwpwlxwlx
-
溫度華氏轉(zhuǎn)變攝氏
#include <stdio.h>
#include <stdlib.h>
enum x {A,B,C,D,E}
int main(void)
{
int a=73,b=85,c=66
{
if (a>=90)
printf("a=A等級!!\n")
else if (a>=80)
printf("73分=B等級!!\n")
else if (a>=70)
printf("73分=C等級!!\n")
else if (a>=60)
printf("73分=D等級!!\n")
else if (a<60)
printf("73分=E等級!!\n")
}
{
if (b>=90)
printf("b=A等級!!\n")
else if (b>=80)
printf("85分=B等級!!\n")
else if (b>=70)
printf("85分=C等級!!\n")
else if (b>=60)
printf("85分=D等級!!\n")
else if (b<60)
printf("85分=E等級!!\n")
}
{
if (c>=90)
printf("c=A等級!!\n")
else if (c>=80)
printf("66分=B等級!!\n")
else if (c>=70)
printf("66分=C等級!!\n")
else if (c>=60)
printf("66分=D等級!!\n")
else if (c<60)
printf("66分=E等級!!\n")
}
system("pause")
return 0
}
標(biāo)簽:
include
stdlib
stdio
gt
上傳時間:
2013-12-12
上傳用戶:亞亞娟娟123
-
Problem B:Longest Ordered Subsequence
A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ..., aN) be any sequence (ai1, ai2, ..., aiK), where 1 <= i1 < i2 < ... < iK <= N. For example, sequence (1, 7, 3, 5, 9, 4, 8) has ordered subsequences, e. g., (1, 7), (3, 4, 8) and many others. All longest ordered subsequences are of length 4, e. g., (1, 3, 5, 8).
標(biāo)簽:
Subsequence
sequence
Problem
Longest
上傳時間:
2016-12-08
上傳用戶:busterman
-
設(shè)B是一個n×n棋盤,n=2k,(k=1,2,3,…)。用分治法設(shè)計(jì)一個算法,使得:用若干個L型條塊可以覆蓋住B的除一個特殊方格外的所有方格。其中,一個L型條塊可以覆蓋3個方格。且任意兩個L型條塊不能重疊覆蓋棋盤。
標(biāo)簽:
上傳時間:
2013-12-19
上傳用戶:xc216
-
function g=distance_classify(A,b)
距離判別法程序。
輸入已分類樣本A(元胞數(shù)組),輸入待分類樣本b
輸出待分類樣本b的類別g
注:一般還應(yīng)計(jì)算回代誤差yita
輸入已知分類樣本的總類別數(shù)n 每類作為元胞數(shù)組的一列
標(biāo)簽:
distance_classify
function
判別
分類
上傳時間:
2013-11-25
上傳用戶:yyyyyyyyyy