一个整数构成的向量,如何做到奇数按照降序排列偶数按照升序排列?
如Example input: (1,4,5,2,3,6,7)Output: (7,5,3,1,2,4,6)
问题来源:
http://stackoverflow.com/questions/2890525/sorting-odd-in-descending-and-even-in-ascending-order
链接里面有答案,但是不是用mathematica等数学软件写的,
不要写看答案,要先写,再看答案
各显神通吧! Clear["Global`*"];(*Clear all variables*)
a=RandomInteger[{1,20},10](*需要被排序的向量*)
jishu=Sort,#1>#2&] (*选出奇数降序排列*)
oushu=Sort,#1<#2&] (*选出偶数升序排列*)
asort1={jishu,oushu} (*求解结果,第一种表现形式*)
asort2=Flatten(*求解结果,第二种表现形式*) 图形式 这个太简单了,改一下,换一下要求,要求排序后,
奇数只能在原来的奇数的位置上,
偶数只能在原来的偶数的位置上!
比如{2,1,5,6,3,4}
结果是{2,5,3,4,1,6},
原来的第1\4\6位是偶数,排序后,仍然是偶数,按照升序排序
原来的第2\3\5位是奇数,排序后,仍然是奇数,按照降序排序
这下子提高了问题的难度,刚才的那个实在是没什么难度! 这个问题用excel和matlab还真不难,但是我还真的不会用mathematica做! #4 加奇偶判断,冒泡法,快速排序是可以的。
页:
[1]