weixin_43893848 2018-12-03 12:11
浏览 828

如何用qsort对一维数组的部分元素进行排序

任务:大规模二维动态数组的排序
1. 利用 main(int argc, char** argv)函数中的参数列表录入三个参数: rowNum,colNum,dim。rowNum 表示二维数组的行数, 要求 rowNum≥ 1000000;colNum 表示二维数组的列数, 要求 colNum≥16;dim 表示 用来对二维数组的行进行排序的列,要求满足 0≤dim<colNum。
2. 用一个(int )指针指向动态生成的整型数组A0,A0由rowNum*colNum
个整数组成。我们将 A0 看作是 rowNum 行、colNum 列的二维数组: A0[0],A0[1],…,A0[colNum-1]是第 1 行,接下来 colNum 个单元为第 2 行,如此等等。利用 srand 函数为 A0 的每个单元(形如 A0[i][j]) 生成一个整数。
3. 用一个(int *)指针指向动态生成的整型数组A1, A1由rowNum*colNum 个整数组成,看作是 rowNum 行、colNum 列的二维数组。利用 memcpy 函数将 A0 复制到 A1:要求每次仅仅复制一行,并且保证 A0 与 A1 所 有单元对应相等。
4. 用一个(int *
)指针指向动态生成的指针数组 A2,A2 由 rowNum 个
(int*)指针组成。将 A2 每个单元中的指针指向 A0 中的对应行,形如 A2[i]指向 A0[i]。注意 A0 中每一行由 colNum 个整数组成。
5. 利用快速排序函数 qsort,将 A1 中的行依照每行的 dim 单元所含整数 进行排序:按从小到大的顺序。记录排序时间为 T1。
6. 利用快速排序函数 qsort,将 A2 中的单元依照每个单元所指对应 A0 行的 dim 单元所含整数进行排序:按从小到大的顺序。记录排序时间 为 T2。
7. 比较第 5 步与第 6 步中的排序结果是否一致,输出比较结果:YES or NO。计算加速比:T1/T2 (即 T1 除以 T2),并且打印输出
第五步想了很久也没想清楚,求大神救救

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 如何用stata画出文献中常见的安慰剂检验图
    • ¥15 c语言链表结构体数据插入
    • ¥40 使用MATLAB解答线性代数问题
    • ¥15 COCOS的问题COCOS的问题
    • ¥15 FPGA-SRIO初始化失败
    • ¥15 MapReduce实现倒排索引失败
    • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
    • ¥15 找一位技术过硬的游戏pj程序员
    • ¥15 matlab生成电测深三层曲线模型代码
    • ¥50 随机森林与房贷信用风险模型