如果在合并排序算法的分割步骤中,将数组a[0:n-1]划分为[ ]个子数组,每个子数组中有O()个元素,然后递归地对分割后的子数组进行排序,最后将所得到的[ ]个排好序的子数组合并成所要求的排好序的数组a[0;n-1].设计一个实现上述策略的合并排序算法,并分析算法的计算复杂性.
中值相对较小的数据会像水中的气泡一样逐渐上升到数组的最顶端,与此同时,较大的数据逐渐地下沉到数组的底部。这个处理过程需要在整个数组范围内反复执行多遍。每一遍执行时,比较相邻的两个元素,若顺序不对,则将其位置交换,当没有数据需要交换时, 数据也就排好序了。编程将排序函数DataSort() 改用冒泡法实现。
设X是含有n个元素的集合,从X中均匀地选取元素.设第k次选取时首次出现重复.
(1)试证明当n充分大时,k的期望值为.其中,.
(2)由此设计一个计算给定集合X中元素个数的概率算法.
令V是实数域R上一个三维向量空间,σ是V的一个线性变换。它关于V的某一个基的矩阵是
(i)求出σ的最小多项式p(x),并把p(x)在R[x]内分解为两个最高次项系数是1的不可约多项式p1(x)与p2(x)的乘积;
(ii)令Wi={ξ∈V|pi(σ)ξ=0},i=1,2。证明,Wi是σ的不变子空间,并且V=W1⊕W2;
(iii)在每一子空间Wi中选取一个基,凑成V的一个基,使得σ关于这个基的矩阵里只出现三个非零元素。