【发布时间】:2015-05-23 13:22:56
【问题描述】:
我有一个字节数组,例如byte[] = new byte[3] { 97, 98, 99, 99, 96 } 在实际情况下字节数组要长得多。
如何获取该数组的所有旋转并对其进行排序?而且我还需要将原始索引保留在排序列表中。
旋转应该是这样的:
{ 97, 98, 99, 99, 96 },
{ 98, 99, 99, 96, 97 },
{ 99, 99, 96, 97, 98 },
{ 99, 96, 97, 98, 99 },
{ 96, 97, 98, 99, 99 }
那我需要排序得到:
{ 96, 97, 98, 99, 99 },
{ 97, 98, 99, 99, 96 }, // <- index in rotated list/array
{ 98, 99, 99, 96, 97 },
{ 99, 96, 97, 98, 99 },
{ 99, 99, 96, 97, 98 }
我使用效率不高的方法将 byte[] 转换为字符串,然后创建字符串数组,每个数组元素保持其旋转,然后对字符串数组进行排序。我还使用了内置函数“排序”,所以我无法捕捉到我的索引。也许可以用 LINQ 或类似的东西来做这个?
【问题讨论】: