找回密码
 欢迎注册
查看: 11862|回复: 5

[擂台] 一个整数构成的向量,如何做到奇数按照降序排列偶数按照升序排列?

[复制链接]
发表于 2011-2-19 08:51:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
如Example input: (1,4,5,2,3,6,7)
Output: (7,5,3,1,2,4,6)

问题来源:
http://stackoverflow.com/questio ... -in-ascending-order

链接里面有答案,但是不是用mathematica等数学软件写的,
不要写看答案,要先写,再看答案

各显神通吧!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-2-19 09:06:23 | 显示全部楼层
  1. Clear["Global`*"];(*Clear all variables*)
  2. a=RandomInteger[{1,20},10]  (*需要被排序的向量*)
  3. jishu=Sort[Select[a,OddQ],#1>#2&] (*选出奇数降序排列*)
  4. oushu=Sort[Select[a,EvenQ],#1<#2&] (*选出偶数升序排列*)
  5. asort1={jishu,oushu}    (*求解结果,第一种表现形式*)
  6. asort2=Flatten[asort1]  (*求解结果,第二种表现形式*)
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-2-19 09:08:13 | 显示全部楼层
图形式
yflt03.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-2-19 09:15:13 | 显示全部楼层
这个太简单了,改一下,换一下要求,要求排序后,
奇数只能在原来的奇数的位置上,
偶数只能在原来的偶数的位置上!

比如{2,1,5,6,3,4}
结果是{2,5,3,4,1,6},
原来的第1\4\6位是偶数,排序后,仍然是偶数,按照升序排序
原来的第2\3\5位是奇数,排序后,仍然是奇数,按照降序排序

这下子提高了问题的难度,刚才的那个实在是没什么难度!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-2-19 09:32:20 | 显示全部楼层
这个问题用excel和matlab还真不难,但是我还真的不会用mathematica做!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-2-19 09:49:25 | 显示全部楼层
#4   加奇偶判断,冒泡法,快速排序是可以的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-26 12:31 , Processed in 0.054461 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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