优化的C++代码,其时间复杂度为O(n2),空间复杂度为O(1),用于后续输入

优化的C++代码,其时间复杂度为O(n2),空间复杂度为O(1),用于后续输入,c++,performance,optimization,C++,Performance,Optimization,阵列i/p:1 0 2 1 0 2 1 注:只有3个数字,即0、1、2。 我们必须使用的一个函数是:swapar、index1、index2 要实现的方法是: void sortint arr[],整数长度 预期o/p:0 0 1 1 2有许多算法可以对数字数组进行排序。最简单的-冒泡排序的时间复杂度为On2,空间复杂度为O1 更多关于2种排序算法:选择排序和插入排序 然而,有更好的算法可以实现On.logn的时间复杂度-合并排序、快速排序等 你说只有3个数字是什么意思:0,1,2。 如果输入是

阵列i/p:1 0 2 1 0 2 1

注:只有3个数字,即0、1、2。 我们必须使用的一个函数是:swapar、index1、index2 要实现的方法是: void sortint arr[],整数长度


预期o/p:0 0 1 1 2

有许多算法可以对数字数组进行排序。最简单的-冒泡排序的时间复杂度为On2,空间复杂度为O1

更多关于2种排序算法:选择排序和插入排序

然而,有更好的算法可以实现On.logn的时间复杂度-合并排序、快速排序等

你说只有3个数字是什么意思:0,1,2。 如果输入是固定的,并且我们知道只有这3个数字,那么最简单的排序方法就是计算每个数字出现的次数。对于此示例:

出现次数[0]=3次; 事件[1]=3; 事件[2]=2;

然后您可以简单地写入输出数组,每个数字重复出现次数[]。 此解决方案的时间复杂度:Om 此解决方案的空间复杂性:Om 这里需要注意的重要一点是‘m’是可能的数字的数目,所以这里m=3,而不是输入数组中的整数的数目——我们称之为‘n’