排序+firstfit算法c语言
时间: 2023-07-22 11:03:43 浏览: 91
排序算法 C语言
以下是使用排序+firstfit算法实现的c语言代码:
```c
#include <stdio.h>
// 使用插入排序对物品进行排序
void insertionSort(int items[], int n) {
int i, j, cur;
for (i = 1; i < n; i++) {
cur = items[i];
j = i - 1;
while (j >= 0 && items[j] < cur) {
items[j + 1] = items[j];
j--;
}
items[j + 1] = cur;
}
}
// firstfit函数返回最少需要的bin数
int firstFit(int items[], int n, int bin_size) {
int bins = 0;
int space_left = bin_size;
for (int i = 0; i < n; i++) {
if (items[i] > space_left) {
bins++;
space_left = bin_size - items[i];
} else {
space_left -= items[i];
}
}
return bins + 1;
}
int main() {
int items[] = {8, 2, 5, 4, 3};
int n = sizeof(items) / sizeof(items[0]);
int bin_size = 10;
// 对物品进行排序
insertionSort(items, n);
// 计算最少需要的bin数
int bins = firstFit(items, n, bin_size);
printf("最少需要的bin数为 %d\n", bins);
return 0;
}
```
该算法首先使用插入排序对物品进行排序,然后使用firstfit算法计算最少需要的bin数。其中,firstfit算法通过遍历物品并将其放入第一个能够放下的bin中来计算需要的bin数。
阅读全文