gpt4 book ai didi

c# - 对 0、1 和 2 的数组进行排序(进一步优化)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:16 24 4
gpt4 key购买 nike

<分区>

下面是一个非常简单的代码,它对 0、1 和 2数组进行排序。我相信它的时间复杂度O(N),对吧?如何进一步改进此算法以将时间复杂度降低到O(logN) 左右?

//Input:  0 2 1 2 0
//Output: 0 0 1 2 2
public static int[] SortArray012(int[] array)
{
Dictionary<int, int> result = new Dictionary<int, int>(3);
int[] sortedResult = new int[array.Length];
int i = 0;

foreach(int no in array)
{
if (result.ContainsKey(no))
result[no]++;
else
result.Add(no, 1);
}

for (; i < result[0]; i++)
sortedResult[i] = 0;
for (; i < result[0] + result[1]; i++)
sortedResult[i] = 1;
for (; i < result[0] + result[1] + result[2]; i++)
sortedResult[i] = 2;

return sortedResult;
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com