爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9592|回复: 18

[求助] fortran二位数组排序求助!!!

[复制链接]

新浪微博达人勋

发表于 2013-5-3 16:38:05 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
有一个二位数组a[2484,98],要对其从小到大排序,求代码,灰常感谢。。。例如:
排序前:
1 4 7
2 5 8
3 6 9
排序后:
1 2 3
4 5 6
7 8 9



密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-5-4 17:09:51 | 显示全部楼层
额,说实话我其实也没看懂你的问题,不过前几天正好写过一个一维数组的排序程序,贴给你:

subroutine rank(x,m)
!        此程序段用冒泡法对一维序列x中数由小到大排序
real x(m)
        do j=2,m
        do i=j,m
        if(x(i).lt.x(j-1))then
                exchange=x(j-1)
                x(j-1)=x(i)
                x(i)=exchange
        endif
        enddo
        enddo
end

很短,程序旨在实现一维数组的由小到大排序,至于什么二维的,我想是不是你的数据只不过存成了好几列而已,自己想办法read到一个数组里面就ok了···
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2013-5-3 18:08:19 | 显示全部楼层
没看懂题目要求。
1、“二维数组”吧?
2、给出的例子好像是 列存储 转行存储。
3、一维数组可以排序,二维数组如何排序?排序的规则是什么?
4、实话说,这种求助比较不招人喜欢,翻翻帖子就知道论坛是鼓励大家自己动手的,真正有困难自会有热心人帮忙。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-3 18:50:16 | 显示全部楼层
小胖猫一语中的....无需多言了
希望所有提问的朋友都能先看看那个关于提问的帖子  .....  提问的艺术
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-3 22:38:57 | 显示全部楼层
本帖最后由 aa22556688 于 2013-5-3 22:40 编辑

我那是个例子,就是二位数组,从小到达排序,每一行从小到大,然后下一行的都小于上一行,记得有什么冒泡排序法。
例如:
排序前:
9 6 3
8 4 2
1 5 7
排序后:
1 2 3
4 5 6
7 8 9选择和直接排序法只能排一维数组,二位数组该怎么排,灰常感谢。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-3 22:40:14 | 显示全部楼层
topmad 发表于 2013-5-3 18:50
小胖猫一语中的....无需多言了
希望所有提问的朋友都能先看看那个关于提问的帖子  .....  提问的艺术

我那是个例子,就是二位数组,从小到达排序,每一行从小到大,然后下一行的都小于上一行,记得有什么冒泡排序法。
例如:
排序前:
9 6 3
8 4 2
1 5 7
排序后:
1 2 3
4 5 6
7 8 9

选择和直接排序法只能排一维数组,二位数组该怎么排,灰常感谢。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-4 13:16:19 | 显示全部楼层
topmad 发表于 2013-5-4 12:32
二维数组你要怎么排序...
不是说不能排序,你总要有个规则...按照行还是按照列 还是什么..

从小到达排序,每一行从小到大,然后下一行的都小于上一行,记得有什么冒泡排序法。
例如:
排序前:
9 6 3
8 4 2
1 5 7
排序后:
1 2 3
4 5 6
7 8 9选择和直接排序法只能排一维数组,二位数组该怎么排,灰常感谢。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-4 10:06:34 | 显示全部楼层
aa22556688 发表于 2013-5-3 22:40
我那是个例子,就是二位数组,从小到达排序,每一行从小到大,然后下一行的都小于上一行,记得有什么冒泡 ...

你这个其实就是把二维数组变成一位数组从小到大排序,然后按照每行三个的方式输出

你所需要的就是看看二维数组转换到一位数组,然后排序,表控输出  就这三个地方
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-4 11:29:29 | 显示全部楼层
topmad 发表于 2013-5-4 10:06
你这个其实就是把二维数组变成一位数组从小到大排序,然后按照每行三个的方式输出

你所需要的就是看看 ...

难道不能对二维数组进行直接排序么?如果二位数组很大,也要转化为一维数组么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-4 12:32:39 | 显示全部楼层
aa22556688 发表于 2013-5-4 11:29
难道不能对二维数组进行直接排序么?如果二位数组很大,也要转化为一维数组么?

二维数组你要怎么排序...
不是说不能排序,你总要有个规则...按照行还是按照列 还是什么..
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-4 16:49:41 | 显示全部楼层
aa22556688 发表于 2013-5-4 13:16
从小到达排序,每一行从小到大,然后下一行的都小于上一行,记得有什么冒泡排序法。
例如:
排序前:

好好看看书去   排序那一部分..... 把你的要求进行算法设计
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表