【发布时间】:2014-01-02 09:49:50
【问题描述】:
我听说过快速排序、冒泡排序、归并排序等排序技术。我有一个像
的数组arr[]={2, 3, 4, 1, 9, 5, 1, 2, 6, 8, 1, 3}
使用冒泡排序我可以完成排序
arr[]={1, 1, 1, 2, 2, 3, 3, 4, 5, 6, 8, 9}
但我需要以这种方式对给定的数组进行排序
arr[]={1, 2, 3, 4, 5, 6, 8, 9, 1, 1, 2, 3 )
也就是说,任何重复出现的值都需要移到数组的末尾。
我的想法是先对数组进行冒泡排序,然后使用这个排序后的数组,遍历数组,将任何重复出现的地方移动到数组的末尾。
这样可以吗?如果是,得到冒泡排序数组后的算法是什么。 或者有没有更好的方法来实现它。
【问题讨论】:
-
重复值是否需要排序?
-
是的,数组可以是任何东西。第一次出现和重复出现的值也需要排序,比如我的数组是 a[]={4,5,6,1,1,3,3,4,4,4,1,9,9,8 ,8}。结果数组需要是 a[]= {1,3,4,5,6,8,9,1,1,3,4,4,4,8,9}
标签: c++ c arrays algorithm sorting