A.选择排序
B.插入排序
C.二分排序
D.用arrays.sort()排序
第1题
A、迭代法利用问题本身的递推关系求解问题的一种方法,例如利用迭代法可求高次方程的精确解。
B、枚举法的基本思想是采用搜索的方法,在答案的大致范围中对所有情况逐一验证,直到所有情况验证完毕。
C、选择排序是每次在无序数中找最小(或最大)数的下标,然后存放在无序数的第一个位置。
D、冒泡排序在每一轮排序时将相邻两个数组元素进行比较,次序不对时立即交换位置。
第2题
第3题
第4题
[说明]
背包问题就是有不同价值、不同重量的物品n件,求从这n件物品中选取一部分物品的选择方案,使选中物品的总重量不超过指定的限制重量,而且选中物品的价值之和为最大。
背包问题是一个典型的NP完全难题。对该问题求解方法的研究无论是在理论上,还是在实践中都具有一定的意义。如管理中的资源分配、投资决策、装载问题等均可建模为背包问题。
常用的背包问题求解方法很多,但本题中采用了一种新的算法来求解背包问题。该算法思想为:首先要对物品进行价重比排序,然后按价重比从大到小依次装进包裹。这种方法并不能找到最佳的方案,因为有某些特殊情况存在,但只要把包中重量最大的物品取出,继续装入,直到达到limitweight,这时的物品就是limit weight的最大价值。这种算法不需要逐个进行试探,所以在数据非常大时,执行效率主要由排序的时间复杂度决定。该算法的流程图为图11-4。
仔细阅读程序说明和C程序流程图及源码,回答问题1和问题2。
[流程图11-4]
[程序说明]
struct Thing:物品结构
typedef struct Bag:背包结构类型
input ( ):将物品按序号依次存入数组函数
inbag ( ):物品按物价比入包函数
init ( ):初始化函数
sort ( ):对物品按价格重量比排序函数
outbag ( ):取出包中weiht最大的物品函数
print ( ):最佳方案输出函数
[C程序]
define N 255
struct Thing {
double weight;
double value;
double dens;
}thing[N];
typedef stmct Bag {
Thing thing [N];
double weighttmp;
double sumvalue;
}bag,best;
inbag ( )
{
do{
bag.thing[i]=thing[i]
(1)
(2)
i++;
}while ( (3) )
}
init ( )
{
for (inti=0; i<N; i++)
{
input (thing[i].weight, thing [i].value)
thing [i].dens=thing[i].value/thing [i].weight;
};
}
main ( )
{
init ( );
sort ( );
inbag ( );
do {
best=bag; //把包中物品放入暂存数组
outbag ( ); //取出包中weight最大的物品
(4)
}while ( (5))
print (best); //输出temp因为是最佳方案
}
根据程序说明及流程图、部分C源码,充分理解算法思想,填入(n)处。
第6题
A、同行的数据在内存中连续存放。
B、对全部数组元素都赋初值时,可以不指定数组第二维的长度。
C、不能将二维数组作为一个整体输入与输出。
D、将二维数组看作是一维数组时,该一维数组的每个元素本身又是一个一维数组。
第7题
B.<常量表达式>不允许是变量
C.一维数组中的各个元素在内存中是按顺序存放的
D.C语言运行时要检查数组的边界,即下标值超界时,系统会报错
第8题
A、数组内容的复制可以通过循环实现,也可以通过System.arraycopy实现。
B、当二维数组声明时,int[][] numbers=new int[10][];数组的长度就确定了。
C、数组是对象,它作为参数传递时的特点和对象是一致的。
D、使用符号=对数组对象赋值时是将对象引用指向同一个数组,而不是将数组内容进行复制。
第9题
A、对象数组中的每个元素都是一个对象引用
B、对象数组中的每个元素都是一个对象
C、可以访问对象数组中的数组元素
D、可以访问对象数组中数组元素的下级成员
第10题
B、对象数组的数组名是一个常量指针
C、对象数组的每个元素是同一个类的对象
D、对象数组只能赋初值,而不能赋值
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!