工学

单选题将数组{8,23,4,16,77,-5,53,100}中的元素按从小到大的顺序排列,每次可以交换任意两个元素,最少需要交换()次。A 4B 5C 6D 7

题目
单选题
将数组{8,23,4,16,77,-5,53,100}中的元素按从小到大的顺序排列,每次可以交换任意两个元素,最少需要交换()次。
A

4

B

5

C

6

D

7

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有二维数组A[0…9][0…19],其每个元素占两个字节,数组按列优先顺序存储,第一个元素的存储地址为100,那么元素A[6,6]的存储地址为__________。


正确答案:
232
二维数组A[0…m][0…n]数据按行优先顺序存储时,下界为0时元素aij的地址计算公式为:LOC(aij)=LOC(a00)+D×(m+1)+i]×d。所以本题中元素的存储地址为100+[6×10+6]×2=232。

第2题:

将数组名作为函数实参,表示将数组首地址传递给函数,在函数中可以通过该首地址操作数组中的元素并更改元素的值。()

此题为判断题(对,错)。


正确答案:正确

第3题:

当把一个有两个同名元素的表单提交给PHP脚本时会发生什么?( )

A.它们组成一个数组,存储在全局变量数组中

B.第二个元素的值加上第一个元素的值后,存储在全局变量数组中

C.第二个元素将覆盖第一个元素

D.第二个元素将自动被重命名


参考答案:C

第4题:

阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入对应栏内。

【说明】

假设数组A中的各元素A(1),A(2),…,A(M)已经按从小到大排序(M≥1);数组B中的各元素B(1),B(2),…,B(N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素:2,5, 6,7,9;数组B中有元素2,3,4,7:则数组C中将有元素:2,2,3,4,5,6,7, 7, 9。

【流程图】


正确答案:(1)1 (2)A(i) (3)B(j) (4)i (5)j (6)B(j) (7)A(i) (8)j (9)i
(1)1 (2)A(i) (3)B(j) (4)i (5)j (6)B(j) (7)A(i) (8)j (9)i 解析:这是最常见的一种合并排序方法。为对较大的序列进行排序,先将其分割成容量相当的几个部分,分别进行排序,最后再合并在一起。当然,这些排序要么都是升序,要么都是降序。本题全部是按升序排序的。
例如,为了将整副扑克牌按升序进行排序,先将其分割成两个部分(数量大致相当),对每个部分完成升序排序后,就形成了两叠已排序的牌。如何将其合并呢?办法如下。
每次都比较各叠最上面的两张牌,取出比较小的,放入新堆,再继续比较。直到其中一堆空了,就将另一堆剩余的牌逐张放入新堆。新堆就是合并后的已完成排序的序列。
在数据排序时,遇到相同的数比较时,任取一个就可以了。
对本题来说,i、j、k是数组A、B、C的下标,初始时,都应该是1。因此,空(1)处应填写1。
将A(i)与B(j)进行比较后,如果A(i)≤B(j),那么应该将A(i)→C(k)。这是升序的要求。因此,空(2)处应填A(i)。如果A(i)>B(j),则应将B(j)→C (k)。因此,空(3)处应填B(j)。
在A(i)→C(k)后,i应增加1,为下次取A(i)再比较做准备(k也需要增加1,为下次存入C(k)做准备)。这时,需要比较数组A是否已经取完,即判断i>M是否成立。如果i>M,则表示数组A中的元素已经全部取出,需要将数组B中剩余的元素逐个移入C(k)。因此,空(4)处应填i,空(6)处应填B(j)。数组B处的元素何时移完呢?这就需要判断i>N是否成立。因此,空(8)处应填j。
同样,空(3)处将B(j)存入C(k),直到,j>N时数组B中的元素取完。此时,需要将数组A中剩余的元素逐个移入C(k),直到i>M时全部完成。因此,空(5)处应填j,空(7)处应填A(i),空(9)处应填i。

第5题:

设有如下定义: char * aa[2]={"abcd","ABCD"}; 则以下说法中正确的是( )

A.aa数组元素的值分别是"abcd"和"ABCD"

B.aa是指针变量,它指向含有两个数组元素的字符型一维数组

C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D.aa数组的两个元素中各自存放了字符'a'和'A'的地址


正确答案:C

第6题:

●将数组{1,1,2,4,7,5}从小到大排序,若采用(62)排序算法,则元素之间需要进行的比较次数最少,共需要进行(63)次元素之间的比较。

(62)A.直接插入

B.归并

C.堆

D.快速

(63)A. 5

B. 6

C. 7

D. 8


正确答案:A,B

第7题:

阅读下列说明和流程图,将应填入(n)处的语句写在对应栏内。

【说明】

下列流程图用于从数组K中找出一切满足:K(I)+K(J)=M的元素对(K(I),K(J))(1≤I≤J≤N)。假定数组K中的N个不同的整数已按从小到大的顺序排列,M是给定的常数。

【流程图】

此流程图1中,比较“K(I)+K(J):M”最少执行次数约为(5)。


正确答案:(1) (2) (3)I+1->I (4)J-1->J (5)[N/2]
(1) (2) (3)I+1->I (4)J-1->J (5)[N/2] 解析:该算法的思路是:设置了两个变量I和J,初始时分别指向数组K的第一个元素和最后一个元素。如果这两个元素之和等于M时,输出结果,并这两个指针都向中间移动;如果小于M,则将指针I向中间移动(因为数组K已按从小到大的顺序排列);如果大于M,则将指针J向中间移动(因为数组K已按从小到大的顺序排列)。当IJ时,说明所有的元素都搜索完毕,退出循环。
根据上面的分析,(1)、(2)空要求填写循环结束条件,显然,(1)空处应填写“”,(2)空处应填写“”。这里主要要注意I=J的情况,当I=J时,说明指两个指针指向同一元素,应当退出循环。
(3)空在流程图有两处,一处是当K(I)+K(J)=M时,另一处是当K(I)+K(J)M时,根据上面分析这两种情况都要将指针I向中间移动,即“I+1->I”。同样的道理,(4)空处应填写“J-1->J”。
比较“K(I)+K(J):M”最少执行次数发生在第1元素与第N个元素之和等于M、第2元素与第N-1个元素之和等于M、……,这样每次比较,两种指针都向中间移动,因此最小执行次数约为“N-2”。

第8题:

设有如下定义char*S[2]={“abcd”,”ABCD”};则以下说法正确的是()

A、S数组中数组元素的值分别是“abcd”,”ABCD”

B、S是指针变量,它指向含有两个数组元素的字符型一维数组

C、S数组的两个元素分别存放的字符’a’和’A’

D、S数组的两个元素分别存放的字符串“abcd”和”ABCD”的首地址


参考答案:D

第9题:

将一个n阶三对角矩阵A的三条对角线上的元素按行压缩存放于一个一维数组B中, A[0][0]存放于B[0]中。对于任意给定数组元素A[i][j],它应是数组A中第______行的元素。


正确答案:2i+j-3
2i+j-3 解析:在三对角矩阵中,按行压缩存储,其转换公式为k=2i+j-3。

第10题:

将数组{1,1,2,4,7,5}从小到大排序,若采用(62)排序算法,则元素之间需要进行的比较次数最少,

A.直接插入

B.归并

C.堆

D.快速


正确答案:A
本题主要考查排序算法。本题给出的数组如果采用直接插入排序,那么其排序过程如下:首先1和1比较找到合适的插入位置,然后2和1比较,找到合适的插入位置;然后4和2比较,找到4的合适插入位置,然后7和4比较,找到7的合适插入位置,然后5和7比较,因为5比7小,因此要与4比较,然后就找到了5的合适位置,整个排序过程结束。总的比较次数为1+1+1+1+2=6次。归并排序的算法思想是将两个相邻的有序子序列归并为一个有序序列,然后再将新产生的相邻序列进行归并,当只剩下一个有序序列时算法结束。其过程如下:1和1比较,然后归并,2和4比较,然后归并,7和5比较,然后归并,解析来将再将[1,1]和[2,4]归并,用2分别与两个1比较得到[1,1,2,4],然后再用[1,1,2,4]与[5,7]归并。这时,用5与[1,1,2,4]中每个元素分别比较一次,最后即可得到整个有序序列。总的比较次数为:1+1+1+2+4=9次。堆排序的基本思想是先将序列建立堆,然后输出堆顶元素,再将剩下的序列建立堆,然后再输出堆顶元素,依此类推,直到所有元素均输出为止。因此在堆排序过程中,最重要的就是建堆。本题中给出的数组序列就是一个小顶堆,然后输出堆顶,将剩下的部分调整为小顶堆,调整的过程为,首先将最后一个元素5置换到堆顶,然后用5与左孩子结点比较,由于大于左孩子,因此与其置换位置,然后值为5的结点仍然大于其左孩子结点,再置换位置,这样就得到了新的小顶堆,这个过程总共比较2次。后面的排序过程是同样的道理。本题采用堆排序算法总共的比较次数为7次。快速排序的基本思想是:①以某个元素为支点(通常是第一个元素),通过比较关键码和交换记录,将待排序的序列分成两个区间。其中左区间中所有元素的关键字均不大于支点元素的关键字,而右区间中所有元素的关键字均不小于支点元素的关键字。称此过程为一次划分;②分别对左右区间的待排序序列,再按照以上方法进行划分,直到整个序列按关键字有序为止。由于本题给出的例子基本是从小到大有序,不适合采用快速排序发,其总共需要的比较次数为15次。

更多相关问题