关于二维数组的排序问题

关于二维数组的排序问题,如果是行排列(就是只对每一行排列).那么就写两个for循环,

外层循环是二维数组的行数,内层循环操纵的是二维数组的每一列.然后用冒泡或者选择排序来排列每一行.

如果是把二维数组看成一整个数组来排列.

大家都知道,二维数组只是大家形象上的想象而已,实际上二维数组并不存在,比如我定义一个arr[3][5].

名叫arr的3行5列的数组,内存中会直接划出int类型(占用4个字节数) * (行*列)的一块空间来存放这个二维数组.

我们可以把上面的那个二维数组理解为一个含有三个元素的一维数组,而且每一个元素又是一个一维数组,

这三个元素的每一个元素中又含有5个元素,我们发现,可以通过arr[0][行 * 列 + 列数]这样以一维数组的方式来访问

二维数组arr[行][列]的值.

这样我们可以把二维数组的排序问题转化为一维数组的排序问题.

还有一种是通过指针来写的.前面讲了二维数组在内存中间也是一片连续的空间,通过定义一个相同类型的指针变量指向二维数组第一个元素

这样也是可以的.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值