找回密码
 欢迎注册
查看: 18311|回复: 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-12-4 16:54 , Processed in 0.025130 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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