【发布时间】:2016-02-18 04:39:41
【问题描述】:
我有一个任务,其中给了我一个包含开始时间和结束时间的活动列表,我需要让它为当天安排尽可能多的活动,假设只有一个房间可以使用。因此,事件按结束时间排序。我应该实现的排序算法如下:
sort() — 对浮点数组 data[] 进行排序的函数,创建一个排序索引数组。 sort() 函数不对数据进行排序,而是填充数组 indx[] 以便 数据[indx[0]],数据[indx[1]],...,数据[indx[NUM_EVENTS - 1]] 是按升序排列的 data[] 的值。
我对它到底在问什么有点困惑,但无论如何这就是我目前所拥有的:
void sort(float data[], int indx[], int len){
int temp;
for (int i = 0; i < len; i++){
for (int j = 0; j < len; j++){
if (data[j] > data[j+1]){
temp = data[j];
indx[j] = data[j+1];
indx[j+1] = temp;
}
}
}
}
此代码可以编译,但行为不正常。当我尝试打印 indx[] 中的内容时,我得到了奇怪的结果。任何帮助是极大的赞赏。谢谢!
【问题讨论】:
-
您能否交叉检查数组
indx中的元素是否在[0,NUM_EVENTS-1] 范围内?可能是问题所在。 -
是的,我认为这不是问题
-
好的,我正在调查。
标签: c++ sorting scheduling