分享
组合数据排序算法问题?
组合数据排序算法问题,254个有位置的数,顺序错乱,分别是 1,2,3 组成。需要得到的结果是从前往后相加为3或者本身自己就是3,求排序方法和排序顺序数值。数据如下:1 2 2 2 1 3 2 3 2 2 3 3 3 3 3 3 1 1 1 1 1 1 2 1 2 1 1 1 1 1 2 2 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 3 1 1 2 3 3 1 1 1 1 2 2 3 3 3 1 2 1 2 2 3 3 3 1 1 1 1 2 2 1 1 1 1 1 2 2 2 1 1 1 1 2 1 1 1 2 2 1 1 1 1 1 1 2 2 1 1 2 1 1 2 1 1 1 1 1 2 1 1 1 2 2 3 1 2 2 2 3 2 1 1 1 1 3 1 1 2 1 1 1 1 1 2 1 1 2 2 1 1 2 1 3 2 2 2 1 1 1 2 1 1 1 2 1 1 1 1 3 1 3 1 2 1 2 2 3 2 1 1 1 2 3 2 1 2 2 2 3 3 3 2 1 1 3 3 3 2 2 3 3 3 2 2 2 1 1 3 2 2 1 1 2 3 2 2 3 3 3 2 2 2 2 2 2 1 2 2 2 3 2 2 2 3 3 1 2 1 1 1 1 3 2 1 1 1 3 1 1 1 2 2 3 3 1 3 2 1求最多可能的顺序:
回复 ( 2 )
不知道有没指定语言或者限制时间空间复杂度,单纯解决问题不考虑时间空间复杂度的话,还是很简单的,说个思路吧:起始P位是否为3,不是则求与3个差取绝对值X,然后从P+1开始往后找找到等于X的则与P+1位子交换,然后递归。如果能擦除数组的值得话,那就不涉及到数组元素的挪动,那样时间复杂度会减小很多
3只能全排前面,然后1212…或2121…排只能两种排法,理解错了请指正