解析:元素a20表示a[2][0]为第三行第一列的那个元素的地址为560每个元素占4个字节,元素a10表示a[1][0]第二行第一列的那个元素的,已知二维数组为A10×10,所以a[2][0]和a[1][0]相距10个元素,所以4*10=40个字节
答案:则元素a10的地址位 520.
解析:
二叉排序树的概念:
二叉排序树是一种动态树表。
二叉排序树的定义:二叉排序树或者是一棵空树,
或者是一棵具有如下性质的二叉树:
⑴ 若它的左子树非空,则左子树上所有结点的值均小于根结点的值;
⑵ 若它的右子树非空,则右子树上所有结点的值均大于根结点的值;
⑶ 左、右子树本身又各是一棵二叉排序树。二叉排序树的性质: 按中序遍历 二叉排序树,所得到的中序遍历 序列是一个递增有序序列。
正确
答案:错误
解析:但是原因不是还可以用栈,因为递归也是用的栈实现的。应该说是还可以用非递归方式实现前序遍历。
答案:随机存取
解析:顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)=LOC(a1)+(i-1)L计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。
答案:快速排序
解析:
产生新的逆序对,并不是说逆序对的数目发生改变。稳定的排序算法,每交换一次,逆序对的数目必然发生改变。
冒泡每交换一次,会减少一个逆序对,并不会产生新的逆序对。
简单插入排序,若插入到已排序序列的最后,则不会产生新的逆序对。
简单选择排序,每次将一个元素归位。无论由小到大归位,还是由大到小归位,都不会产生新的逆序对。
而快排,是跳跃式交换,必然会产生新的逆序对。
答案:错误
解析:数组和矩阵不同,数组元素可以是字符,即字符数组,矩阵中都是数
答案:错误
解析:注意!!! 二分查找针对的有序,不要被坑.
答案:错误
解析:内 排序 是指待 排序 列完全存放在内存中所进行的 排序 过程,与存储方式无关
答案:2次
答案:正确
解析:
所以顺序查找指从第一个数据元素开始查找到最后
而顺序表查找是顺序存储结构上进行查找
数组元素在栈区,链表元素在堆区
解答本题需要对各种排序算法的特点极为清楚。对于冒泡排序和选择排序,每一趟都能确定一个元素的最终位置,而题目中,前 2 个元素和后 2 个元素均不是最小或最大的 2 个元素并按序排列。选项 D 中的 2 路归并排序,第一趟排序结束都可以得到若干个有序子序列,而此时的序列中并没有两两元素有序排列。插入排序在每趟排序后能确定前面的若干元素是有序的,而此时第二趟排序后,序列的前三个元素是有序的,符合其特征。
a[2][4]越界了,a[2][3]就可以,数组从0开始
push方法是向数组末尾添加一个或者多个元素,并返回新的长度 二、pop方法删除数组的最后一个元素,把数组的长度减1,并且返回它被删除元素的值,如果数组变为空,则该方法不改变数组,返回undefine值 三、unshift()方法是向数组的开头添加一个或多个元素,并且返回新的长度 四、shift()方法和unshift()方法恰恰相反。该方法用于把数组的第一个元素从其中删除,并返回被删除的值。如果数组是空的,shift()方法将不进行任何操作,返回undefined的值。 五,join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
一、先算内层f(9)
[1] 计算 f(9) = f(7) + f(3) + 1;
[2] 计算[1]中 f(7) = f(5) + f(1) + 1;
[3] 计算[2]中 f(5) = f(3) + f(-1) + 1;
[4] 计算[3]中 f(3) = 1;
[5] 计算[3]中 f(-1) = 1;
{至此f(5)可计算得: f(5) = 1 + 1 + 1 = 3}
[6] 计算(1)中f(1) = 1;
{至此f(7)可计算得 :f(7) = 3 + 1 + 1 = 5}
[7] 计算[1]中f(3) = 1;
{至此f(9)可计算得:f(9) = 5 + 1 + 1 = 7}
计算f(9)一共调用了7次函数
二、计算外层f(7)
由上面步骤可知,计算f(7)调用了5次函数
所以一共调用了函数7+5=12次