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 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
    • ¥20 matlab yalmip kkt 双层优化问题
    • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
    • ¥88 实在没有想法,需要个思路
    • ¥15 MATLAB报错输入参数太多