Arrays 对数组进行排序,使重复的值始终排在最后
我想对数组进行排序 示例:1112343445 我需要分类如下:12345123143 这可能吗 Objective-C、Swift或Javascript算法概述Arrays 对数组进行排序,使重复的值始终排在最后,arrays,sorting,Arrays,Sorting,我想对数组进行排序 示例:1112343445 我需要分类如下:12345123143 这可能吗 Objective-C、Swift或Javascript算法概述 按常规方式对数组a进行排序 由于排序,重复值现在在a中相邻,这使得它们很容易被发现 创建新阵列 遍历已排序的数组,将新元素移动到新数组的开头,将已看到的元素移动到新数组的结尾 伪码算法 代码 函数sortWithDuplicateLast(数组a\u未排序) { 数组a=排序(a_未排序) 数组b=长度与a相同的新数组 int j=0
a
进行排序李>
a
中相邻,这使得它们很容易被发现李>
函数sortWithDuplicateLast(数组a\u未排序)
{
数组a=排序(a_未排序)
数组b=长度与a相同的新数组
int j=0
int k=长度(b)-1
对于(int i=0;i
索引说明
a = [1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5]
^ i
b = [1, 2, , , , , , , , 2, 1, 1]
^ j ^ k
结果
a_unsorted = [4, 2, 5, 1, 1, 4, 3, 1, 3, 2, 3, 3]
a = [1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5]
b before optional pass = [1, 2, 3, 4, 5, 4, 3, 3, 3, 2, 1, 1]
b = [1, 2, 3, 4, 5, 1, 1, 2, 3, 3, 3, 4]