?? fac4_1.java
字號:
//
//本程序取自王曉東編著“算法分析與設計”第 108 頁,例
//活動安排問題貪心解法
class task{
int n;
int[] s;
int f[];
public task(int n1,int[] s1,int f1[])
{ n=n1;
s=s1;
f=f1;
}
}
public class Fac4_1{
public static void sort(int[]x,int[] y)
{
int m=x.length-1;
for(int i=0;i<m;i++)
for(int j=i;j<=m;j++)
if(y[i]>y[j]){
swap(y,i,j);
swap(x,i,j);
}
}
public static void swap(int[] a,int m,int n)
{
int temp;
temp=a[m];
a[m]=a[n];
a[n]=temp;
}
public static int greedySelector(int[] s,int[] f,boolean a[])
{
int n=s.length-1;
a[0]=true;
int j=1;
int count=1;
for (int i = 1; i <= n; i++){
if(s[i]>=f[j]){
a[i]=true;
j=i;
count++;
}
else a[i]=false;
}
return count;
}
public static void main(String argc[])
{
int tws=11;
int ts[]={1,3,0,8,6,5,3,8,5,2,12};
int tf[]={4,5,6,12,10,9,8,11,7,13,14};
// System.out.println(" 輸出原始數據 ");
//for(int i=0;i<tws;i++)
// System.out.print(" "+ts[i]);
//System.out.println();
// for(int i=0;i<tws;i++)
// System.out.print(" "+tf[i]);
// System.out.println();
sort(ts,tf);
//System.out.println(" 輸出排序后數據 ");
//for(int i=0;i<tws;i++)
// System.out.print(" "+ts[i]);
// System.out.println();
//for(int i=0;i<tws;i++)
// System.out.print(" "+tf[i]);
// System.out.println();
task aa=new task(tws,ts,tf);
boolean w[]=new boolean[tws];
greedySelector(aa.s,aa.f,w);
System.out.println(" 輸出最大活動依任務好安排順序 ");
for(int i=0;i<tws;i++){
if(w[i])
System.out.print(" "+(i+1));
}
System.out.println();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -