第1题:
设A是含有n个元素的数组,如果元素x在A出现的次数大于n/2,则称x是A的主元素。 (1)如果A中元素是可以排序的,设计一个O(nlogn)时间的算法,判断A中是否存在主元素。 (2)对于(1)中可排序的数组,能否设计一个O(n)时间的算法? (3)如果A中元素只能进行“是否相等”的测试,但是不能进行排序,设计一个算法判断A中是否存在主元素。
第2题:
纸质作业 算法设计:设计求解下列问题的类C语言算法,并分析其最坏情况的时间复杂度及其量级。 (1)在数组A[1..n]中查找值为K的元素,若找到则输出其位置i(1<=i<=n),否则输出0作为标志。 (2)找出数组A[1..n]中元素的最大值和次最大值(本小题以数组元素的比较为标准操作)。
第3题:
设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为()。
A.(i-1)*n+j
B.(i-1)*n+j-1
C.i*(j-1)
D.j*m+i-1
第4题:
设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为()
A.(i-1)*n+j
B.(i-1)*n+j-1
C.i*(j-1)
D.j*m+i-1
第5题:
设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为()。
A.(i-1)*n+j
B.(i-1)*n+j-1
C.i*(j-1)
D.j*m+i-1