可能重复:
Reordering of array elements
Interview test - rearrange the array算法就地阵列的重排序
我有其中3种语义元素(A,B,C)被存储在一个阵列形式如下:
[a][b][c][a][b][c][a][b][c]...
这意味着ab和c不是实际的l值。第一个a可能是10,第二个1,第三个25,等等。一b和c表示,该计划将给予您看到“一”一定语义各项指标,同为b和c。
我要重新排序所以它的形式:
[a][a][a]...[b][b][b]...[c][c][c]....
有没有办法做到这一点“就地”,没有一个临时的“缓冲”阵列的使用意义吗?
与值的示例:
启动阵列:
[11] [5] [3] [284] [123123] [841823] [0] [11] [22]
我需要将其重新排列到:
[11] [284] [0] [5] [123123] [11] [3] [841823] [22]
这维基百科文章可以回答您的问题:[就地矩阵转](HTTP:// EN .wikipedia.org /维基/在place_matrix_transposition)。 –
大多数排序算法,从冒泡到快速排序,在地方进行。 – dasblinkenlight
hmm .. quicksort,mergesort或任何其他的 – smk