關(guān)鍵路徑算法(critical path method,CPM)是一種網(wǎng)絡(luò)分析技術(shù),它在項(xiàng)目網(wǎng)絡(luò)圖的基礎(chǔ)上,從規(guī)定的開始日期開始,利用從左到右的正向推導(dǎo)法計(jì)算出網(wǎng)絡(luò)圖中每個(gè)活動(dòng)的最早開始和最早結(jié)束日期,再從規(guī)定的完成日期(通常是正向計(jì)算得到的最早完成日期)開始,利用從右到左的逆向推導(dǎo)法計(jì)算出網(wǎng)絡(luò)圖中每個(gè)活動(dòng)的最晚結(jié)束和最晚開始日期,通過比較網(wǎng)絡(luò)圖中每個(gè)活動(dòng)的最早開始、最早結(jié)束和最晚開始、最晚結(jié)束日期,確定各個(gè)活動(dòng)的時(shí)差情況,如果某條線路上所有活動(dòng)的時(shí)差都為零,該條路徑即為關(guān)鍵路徑,而時(shí)差不為零的路徑稱為非關(guān)鍵路徑。
創(chuàng)新互聯(lián)提供高防主機(jī)、云服務(wù)器、香港服務(wù)器、IDC機(jī)房托管等
#include iostream #include cstdio using namespace std; int n,m,w[1001][1001],prev[1001],queue[1001],Time[1001],l=0,r=0,Pos[1001],path[1001]; void init() { int i,a,b,c; scanf("%d%d",n,m); for (i=1;i=m;i++) { scanf("%d%d%d",a,b,c); w[a][b]=c; prev[b]++; } } inline void Newq(int v) { r++; queue[r]=v; } inline void Del(int v) { int i; for (i=1;i=n;i++) if (w[v][i]) { prev[i]--; if (!prev[i]) Newq(i); } } void topo() { for (int i=1;i=n;i++) if (!prev[i]) Newq(i); while (rn) { l++; Del(queue[l]); } } void crucialpath() { int i,j; memset(Time,0,sizeof(Time)); for (i=1;i=n;i++) for (j=1;j=n;j++) if ((w[j][queue[i]]) (Time[j]+w[j][queue[i]]Time[queue[i]])) { Time[queue[i]]=Time[j]+w[j][queue[i]]; Pos[queue[i]]=j; } } void print() { printf("%d\n",Time[n]); int i=n,k=0; while (i!=1) { k++; path[k]=i; } for (i=k;i1;i--) printf("%d ",path[i]); printf("%d\n",path[1]); } int main() { init(); topo(); crucialpath(); print(); return 0; }
c++的 你湊合用下?
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;
public class search
{
//查找方法,參數(shù),文件絕對(duì)路徑,查找關(guān)鍵字
public static boolean search(String filepath,String key)
{
try
{
File f = new File(filepath);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = "";
//int i = 1;
while((s = br.readLine()) != null)
{
if(s.indexOf(key) != -1)
{
return true;
}
}
return false;
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
}
public static void main(String args[])
{
System.out.println(search.search("d://t.txt","l2"));
}
}
修改了下,加兩個(gè)變量,可以指出查找的位置。
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;
public class search
{
//查找方法,參數(shù),文件絕對(duì)路徑,查找關(guān)鍵字
public static String search(String filepath,String key)
{
try
{
File f = new File(filepath);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = "";
int i = 1;
int m = 0;
while((s = br.readLine()) != null)
{
if((m = s.indexOf(key)) != -1)
{
return "第"+i+"段,第"+m+"處";
}
i++;
}
return null;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
public static void main(String args[])
{
System.out.println(search.search("d://t.txt","asd"));
}
}
這個(gè),查漢字是沒有問題的。
另外,你要全文檢索的話,indexOf()還有個(gè)方法,indexOf(int start,String key),指定開始查找的位置跟關(guān)鍵字,你查到一處后,將這個(gè)數(shù)值加1,做為繼續(xù)查找的開始位置就可以了。
網(wǎng)站名稱:java關(guān)鍵路徑算法代碼 java關(guān)鍵路徑算法代碼有哪些
文章源于:http://muchs.cn/article26/dojhgjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、營銷型網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、用戶體驗(yàn)、網(wǎng)頁設(shè)計(jì)公司、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)