一 #include using namespace std; #define MAXCOUNT 100 #define TRUE 1 #define FALSE 0 typedef int Time; typedef struct //定义活动 { Time start; //开始时间 Time finish; //结束时间 int index; //索引号 bool abc;//标志是否被选中 }HuoDong; typedef struct //定义活动 { HuoDong r[MAXCOUNT+1]; //r[0]闲置或用作 “ 哨兵单元” int length; }HDS; int Partition(HDS &L,int low,int high) //交换顺序表L中子表r[low.....high]的记录,枢轴记录到位,并返回其所在位置,此时在它之前的活动的结束时间均不大于它. { int shuzhou; //定义枢轴 L.r[0]=L.r[low]; //用第一个记录作为枢轴记录 shuzhou=L.r[low].finish; while(low=shuzhou) --high; L.r[low]=L.r[high]; while(low=L.r[j].finish) { L.r[i].abc=true; j=i; } else L.r[i].abc=false; } }//GreedySelector void Listr(HDS L) //输出结果 { int n=L.length-1; int count=0; for(int i=1;i<=n;i++) { if(L.r[i].abc==true) { cout<<"第个"<