将一个二维数组排序到一维数组

题目描述

给你一个二维数组,请将它排序到一个一维数组,
int* MySort(int** source, int* len,int n, int* output)

思路

将结果一维数组指针返回是一种链式编程思想,例如a = sort(a,sort(b,c))这样。然后形参给了一个指向一个指针的数组,所以这个二维数组在内存中不是连续分配的,然后还给你一个每行的长度。
- 我先想到将每一行快排,然后将每一行两两合并,就像mergesort样,但是这并没有降低算法的时间复杂度,注意这个解法的算法复杂度一般不会超过nlgn,要不然将一个一维数组切成几段就可以超过nlgn,干嘛还要快排是吧。
所以我认为这个就是一个变种的考排序算法的题目,顺便检查你的C++编程基本功。在写完后,面试官可能会问一下八种排序算法的优劣。
注意这里的output要在使用MySort函数前分配好足够的地址空间,或者使用全局变量也行。我这里给出一个使用冒泡排序的写法。当然你还可以选择其它的nlgn排序算法。注意,使用排序算法的时候一定结合具体条件来选择合适的算法,这个可以和面试官讲清楚。

#include <iostream>
using namespace std;

int res1[10
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值