作者StupidGaGa (笨嘎嘎)
看板C_Sharp
标题Re: [问题] 二维矩阵一一比大小 求差异最大
时间Wed Jul 10 23:32:14 2013
※ 引述《st111840 (小白)》之铭言:
: 如题 目前遇到一个问题
: 希望能找出二维矩阵中由大到小排列
: 落差最大的那个值
: 如150 148 137 80 45 则我要找137 因为和80落差最大
: 这部分不知道该如何完成 请板上高手指导一下了
: P.S 目前二维矩阵尚未排序过 资料是乱的
: 有想过用两个for回圈将二维矩阵的资料排序到一维阵列中
: 不过这部分不太了解该怎麽写 请高手们帮帮忙 谢谢
我不是高手,写法百百种,挑一个你爽的。
建议不要二维转一维,这样很浪费
我的写法是这样
OrininalArray:原始二维阵列
A E C
F B D
SortedArray:排序後二维阵列
直接从原始阵列排序就好,
不用转一维排序後再转回二维
A B C
D E F
DifferenceArray:差值二维阵列
排序後阵列的两两差值,
放在差值阵列的前一个Index
A-B B-C C-D
D-E E-F 0
这样写的好处是,
可以从「差值阵列」推算出「排序後阵列」是哪两个元素的差值最大。
通常以排序後的资料这样写比较快,
为排序的资料随你写都没差。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.20.138
1F:推 st111840:感谢分享 我想转一维是因为怕直接二维阵列排序不知道会不 07/11 12:24
2F:→ st111840:会更改到二维阵列的原始资料 因为程式後半部分会需要用到 07/11 12:24
3F:→ st111840:二维阵列的座标值 07/11 12:25
4F:→ StupidGaGa:从原始阵列复制一分後再sort就好。 07/11 16:01