联机装箱

原创 2016年08月30日 16:59:19

最近在看数据结构与算法,对书中的一些算法尝试着写了代码。因为自己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;
}

[Kotlin]Kotlin中的“数字装箱”问题·坑

中文教程和官方文档都靠不住。
  • Shenpibaipao
  • Shenpibaipao
  • 2017年08月07日 19:20
  • 483

.NET的装箱与拆箱内幕

装箱与拆箱是.NET中非常重要的概念。 装箱是将值类型转换成引用类型,或者是实现了接口的值类型。装箱将数据存储的空间由Thread stack转存到了Managed Heap中。凡是在Managed ...
  • xxdddail
  • xxdddail
  • 2014年07月04日 16:49
  • 1606

基本类型与包装(装箱)类型的区别

Java的类型分为两部分,一个是基本类型(primitive),如int、double等八种基本数据类型;另一个是引用类型(reference type),如String、List等。而每一个基本类型...
  • Cynthia9023
  • Cynthia9023
  • 2013年12月19日 13:51
  • 1614

装箱和拆箱的区别与详解

深入剖析Java中的装箱和拆箱   自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇...
  • LiMing_0820
  • LiMing_0820
  • 2016年10月17日 15:45
  • 1386

C# 装箱 折箱

转自:http://www.cnblogs.com/xiaoshi/archive/2008/05/28/1208902.html   装箱(boxing)和拆箱(unboxing)是C#类...
  • wonengxing
  • wonengxing
  • 2015年03月04日 10:04
  • 1050

关于装箱拆箱为什么会影响效率

概念 装箱在值类型向引用类型转换时发生,在堆中分配。 拆箱在引用类型向值类型转换时发生。 示例装箱 public void BoxIn() { ...
  • Admin_Jhon
  • Admin_Jhon
  • 2016年10月20日 15:55
  • 822

浅谈JAVA中的自动装箱/拆箱

前言:自动装箱和拆箱是JDK1.5提供的新特性,大致是由编译器自动帮助完成基本类型和基本类型的包装类之间的转换。 好吧,知道了自动装箱的大致意思之后,我们先来复习一个有关基本类型以及包装类的概念: ...
  • derson2388
  • derson2388
  • 2012年09月27日 21:26
  • 3616

C# - 再谈C#的装箱和拆箱

上一篇写了一下装箱拆箱的定义和IL分析,这一篇我们看下使用泛型和不使用泛型引发装箱拆箱的情况 1. 使用非泛型集合时引发的装箱和拆箱操作  看下面的一段代码: 1 2 3 ...
  • honey199396
  • honey199396
  • 2016年08月31日 11:35
  • 534

JAVA自动拆装箱

看了这篇文章,从例子到源码,转载留日后忘记再来查阅。 原文出处 Java有8种基本类型,每种基本类型又有对应的包装类型。在Java中,一切都以对象作为基础,但是基本类型并不是对象,如果...
  • u012542422
  • u012542422
  • 2016年02月23日 11:19
  • 1583

BZOJ 1010: [HNOI2008]玩具装箱toy

题目地址:http :// www . lydsy . com / JudgeOnline / problem . php ? id = 1010 题目大意:见原题。 算法分析:         设s...
  • u013703661
  • u013703661
  • 2014年07月18日 14:10
  • 1657
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:联机装箱
举报原因:
原因补充:

(最多只允许输入30个字)