最近在看数据结构与算法,对书中的一些算法尝试着写了代码。因为自己coding能力比较差,所以自己写的大部分都不够简洁。等看完书再回来改吧。
//
// main.cpp
// zhuangxiang
//
// Created by s on 16/8/30.
// Copyright © 2016年 s. All rights reserved.
//
#include <iostream>
#include <vector>
using namespace std;
void box_1(vector<float>&a,int n){//下项适配
vector<float> r(n,1.0);
int num=(int )a.size();
int count=0;
for(int i=0;i<num&&count<n;){
if(a[i]<=r[count]){
r[count]-=a[i];
a[i]=count;
i++;
}
else{
count++;
}
}
for(int i=0;i<num;i++)
cout<<a[i]<<" ";
cout<<'\n';
}
void box_2(vector<float>&a,int n){//first fit
vector<float> r(n,1.0);
int num=(int )a.size();
for(int i=0;i<num;i++)
for(int j=0;j<=n;j++){
if(a[i]<=r[j]){
r[j]-=a[i];
a[i]=j;
break;
}
}
for(int i=0;i<num;i++)
cout<<a[i]<<" ";
cout<<'\n';
for(int i=0;i<=n;i++)
cout<<r[i]<<" ";
}
void box_3(vector<float>&a ,int n){//best fit
vector<float> r(n,1.0);
int num=(int )a.size();
for(int i=0;i<num;i++){
float min=1.0;
int temp=0;
for(int j=0;j<=n;j++){
if(a[i]<=r[j] && (r[j]-a[i])<min){
min=r[j]-a[i];
temp=j;
cout<<"min"<<min<<endl;
}
}
r[temp]-=a[i];
a[i]=temp;
}
for(int i=0;i<num;i++)
cout<<a[i]<<" ";
cout<<'\n';
for(int i=0;i<=n;i++)
cout<<r[i]<<" ";
}
int main(int argc, const char * argv[]) {
vector<float> a;
float i;
int n;
cin>>n;
cout<<"please input"<<'\n';
while(cin>>i)
a.push_back(i);
int num=(int)a.size();
cout<<num<<endl;
box_3(a, n);
return 0;
}