[求助]在希尔排序和2-路归并排序中,如果元素个数是单数,应该怎么分块?
在做希尔排序和2-路归并排序中,如果元素个数是单数,应该怎么分块?比如在希尔排序中,增量是5,但是有11个元素,我不知道应该怎么分组.
还有在2-路归并排序中,如果元素个数是单数,那么总有一个是打单的,应该怎么处理?期待大家的帮助!
希尔排序中不用分组吧
例如
1 2 3 4 5 6 7 8 9
则1跟6比较排序,2跟7比较排序,3跟8,4跟9 ,小的放前面就行了啊
然后增量等于3等于1再运算就得出正确结果了
至于2路归并
打单的就不管了,等你把前面的归并排完后(排完的数据一般放在swap[]中),将后面打单的数据接着前面排好的数据后面顺序存放到数组swap[]中就行了.
5不处理就行了,它继续放在它在数组中原来的位置
必须用奇数的!!!一般用5,3,2搞定了
,我觉得最好还是先对原理有个大致的了解然后对照着源代码看书.