weixin_43893848 2018-12-07 00:59
浏览 841

如何用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 微信公众号自制会员卡没有收款渠道啊
    • ¥15 stable diffusion
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿