返回主页

[数据结构 P2017] 已知某排序算法如下: void cmpCountSort(int a[],int b[],int

 
学习人数: 651
 
正确率: ??%
答案解析

题目描述
未通过

已知某排序算法如下:

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; i < n; i++) count[i] = 0; 
    for (i = 0; i < n - 1; i++)
        for (j = i + 1; j < n; j++) 
            if (a[i] < a[j]) count[j]++; 
            else count[i]++;
    for (i = 0; i < n; i++) b[count[i]]= a[i];
    free(count); // C++语言: delete count; 
}

请回答下列问题。

⑴ 若有int a[] = {25, -10, 25, 10, 11, 19}, b[6]; ,则调用cmpCountSort(a, b, 6)后数组b中的内容是什么?

⑵ 若a中含有n个元素,则算法执行过程中,元素之间的比较次数是多少?

⑶ 该算法是稳定的吗?若是,则阐述理由;否则,修改为稳定排序算法。


上一题
下一题
加入错题本
个人笔记
已有1条笔记

登录后提交答案


1 个回答 (点击展开回答)