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)對(duì)的最短路徑矩陣 3)算法小結(jié):此算法簡(jiǎn)單有效,由于三重循環(huán)結(jié)構(gòu)緊湊,對(duì)于稠密圖,效率要高于執(zhí)行|V|次Dijkstra算法。時(shí)間復(fù)雜度O(n^3)。 考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個(gè)判斷I,j是否有通路的矩陣。更簡(jiǎn)單的,我們可以把dis設(shè)成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來(lái)代替算法描述中的藍(lán)色部分,可以更直觀地得到I,j的連通情況。
標(biāo)簽: Floyd-Warshall Shortest Pairs Paths
上傳時(shí)間: 2013-12-01
上傳用戶:dyctj
用C++中的MFC編程實(shí)現(xiàn)正軸等角割圓柱投影,實(shí)現(xiàn)以下要求: 取克拉索夫斯基橢球 (1)制圖區(qū)域: Bs=0°, BN=25° LE=105°, LE=125° (2)經(jīng)緯線間隔: ΔB=ΔL=5° (3)制圖比例尺: 1:M0=1:1000 000 (4)標(biāo)準(zhǔn)緯線: Bk=±15° 計(jì)算經(jīng)緯網(wǎng)格點(diǎn)的 x, y,m,n, p
標(biāo)簽: MFC 編程實(shí)現(xiàn) 正 投影
上傳時(shí)間: 2013-12-29
上傳用戶:himbly
約瑟夫問(wèn)題的C語(yǔ)言程序,基本實(shí)現(xiàn)其功能,可以輸入N個(gè)人數(shù),進(jìn)行結(jié)果計(jì)算輸出
標(biāo)簽: C語(yǔ)言程序
上傳時(shí)間: 2013-12-24
上傳用戶:cylnpy
數(shù)據(jù)結(jié)構(gòu)(嚴(yán)慰敏)配套純c代碼實(shí)驗(yàn)十 typedef int InfoType // 定義其它數(shù)據(jù)項(xiàng)的類型 typedef int KeyType // 定義RedType類型的關(guān)鍵字為整型 struct RedType // 記錄類型(同c10-1.h) { KeyType key // 關(guān)鍵字項(xiàng) InfoType otherinfo // 其它數(shù)據(jù)項(xiàng) } typedef char KeysType // 定義關(guān)鍵字類型為字符型 #include"c1.h" #include"c10-3.h" void InitList(SLList &L,RedType D[],int n) { // 初始化靜態(tài)鏈表L(把數(shù)組D中的數(shù)據(jù)存于L中) char c[MAX_NUM_OF_KEY],c1[MAX_NUM_OF_KEY] int i,j,max=D[0].key //
標(biāo)簽: typedef int InfoType KeyType
上傳時(shí)間: 2016-03-03
上傳用戶:2404
數(shù)據(jù)結(jié)構(gòu) 1、算法思路: 哈夫曼樹(shù)算法:a)根據(jù)給定的n個(gè)權(quán)值{W1,W2… ,Wn }構(gòu)成 n棵二叉樹(shù)的集合F={T1,T2…,T n },其中每棵二叉樹(shù)T中只有一個(gè)帶權(quán)為W i的根結(jié)點(diǎn),其左右子樹(shù)均空;b)在F中選取兩棵根結(jié)點(diǎn)的權(quán)值最小的樹(shù)作為左右子樹(shù)構(gòu)造一棵新的二叉樹(shù),且置新的二叉樹(shù)的根結(jié)點(diǎn)的權(quán)值為其左、右子樹(shù)上結(jié)點(diǎn)的權(quán)值之和;c)F中刪除這兩棵樹(shù),同時(shí)將新得到的二叉樹(shù)加入F中; d)重復(fù)b)和c),直到F只含一棵樹(shù)為止。
標(biāo)簽: 算法 W1 數(shù)據(jù)結(jié)構(gòu) 樹(shù)
上傳時(shí)間: 2016-03-05
上傳用戶:lacsx
這是一個(gè)用C語(yǔ)言寫的禁忌搜索算法的解釋,解決了了一個(gè)n后問(wèn)題,這是一個(gè)典型的介紹性的算法代碼。 很不錯(cuò)
上傳時(shí)間: 2014-01-02
上傳用戶:shinesyh
冒泡法是數(shù)據(jù)排序的一種基本算法,它的基本方法是:相鄰兩元素進(jìn)行比較,如有需要?jiǎng)t進(jìn)行交換, 每完成一次循環(huán)就將最小元素排在最后(如從大到小排序),下一次循環(huán)是將其他的數(shù)進(jìn)行類似操作? 如將N 個(gè)數(shù)按從大到小排序,Turbo C語(yǔ)言程序函數(shù)
標(biāo)簽: 排序 元素 循環(huán) 數(shù)據(jù)
上傳時(shí)間: 2016-03-20
上傳用戶:趙云興
A* sudo sudo/* B* adduser script adduser C* rmuser script rmuser E* tout tout/* F* dumdum dumdum G* lostfile lostfile H* Mkfl.localsys Makefile.localsys I* spacegripe spacegripe J* sendmail.cf sendmail.cf N* remote remote.c O* distributed conrol distrib/* P* hosts and name server makerevhosts Q* xargs xargs/*
標(biāo)簽: adduser script rmuser sudo
上傳時(shí)間: 2016-03-29
上傳用戶:gxrui1991
編程題(15_01.c) 結(jié)構(gòu) struct student { long num char name[20] int score struct student *next } 鏈表練習(xí): (1).編寫函數(shù)struct student * creat(int n),創(chuàng)建一個(gè)按學(xué)號(hào)升序排列的新鏈表,每個(gè)鏈表中的結(jié)點(diǎn)中 的學(xué)號(hào)、成績(jī)由鍵盤輸入,一共n個(gè)節(jié)點(diǎn)。 (2).編寫函數(shù)void print(struct student *head),輸出鏈表,格式每行一個(gè)結(jié)點(diǎn),包括學(xué)號(hào),姓名,分?jǐn)?shù)。 (3).編寫函數(shù)struct student * merge(struct student *a,struct student *b), 將已知的a,b兩個(gè)鏈表 按學(xué)號(hào)升序合并,若學(xué)號(hào)相同則保留成績(jī)高的結(jié)點(diǎn)。 (4).編寫函數(shù)struct student * del(struct student *a,struct student *b),從a鏈表中刪除b鏈表中有 相同學(xué)號(hào)的那些結(jié)點(diǎn)。 (5).編寫main函數(shù),調(diào)用函數(shù)creat建立2個(gè)鏈表a,b,用print輸出倆個(gè)鏈表;調(diào)用函數(shù)merge升序合并2個(gè) 鏈表,并輸出結(jié)果;調(diào)用函數(shù)del實(shí)現(xiàn)a-b,并輸出結(jié)果。 a: 20304,xxxx,75, 20311,yyyy,89 20303,zzzz,62 20307,aaaa,87 20320,bbbb,79 b: 20302,dddd,65 20301,cccc,99 20311,yyyy,87 20323,kkkk,88 20307,aaaa,92 20322,pppp,83
標(biāo)簽: student struct score long
上傳時(shí)間: 2016-04-13
上傳用戶:zxc23456789
解決N皇后問(wèn)題,使用的是C++編寫的,有興趣的可以
標(biāo)簽:
上傳時(shí)間: 2016-04-20
上傳用戶:wang5829
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1