首页 习题正文

42.(8分)已知某排序算法如下:void cmpCount

42.(8分)已知某排序算法如下: void cmpCountSort(int a[],int b[],int n) { int i,j,* Count; count =(int *)malloc(sizeof( int)* n); //C++语言∶count = new int[n]; for(i= 0;ifor(i = 0;ifor(j = i+1;jif( a[i]else count[i]++; for(i = 0;ifree(count); // C++语言∶delete count; } 请问答下列问题。 (1)若有 int a[]={25,-10,25,10,11,19,b[6];,则调用cmpCountSort(a,b,6)后数组 b中的内容是什么? (2)若a中含有 n个元素,则算法执行过程中,元素之间的比较次数是多少? (3)该算法是稳定的吗?若是,则阐述理由;否则,修改为稳定排序算法。



【参考答案及解析】
(1)b[]={-10,10,11,19,25,25} (2)元素之间的比较次数是 n(n-1)/2。 (3)不是。 需要将程序中的 if语句修改如下: if(a[i]<= a[ j])count[j]++; else count[ i]++;

正在整理中,欢迎在文下评论区提供答案解析,谢谢!
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接:https://scpro.cn/v/f99472ed667347f0.html