这个问题的时间复杂度是多少?

下面的伪代码表示一种算法,它接受一个元素数组作为输入,该数组可以包含正整数或字符串。换句话说,输入可以是这样的[42, 'a', 1, 'hello', 3]

该算法输出一个具有以下属性的数组:输出中的元素在字符串和整数之间交替,每个元素都小于或等于前一个相同类型的元素(除了位置1和2的元素,它们是各自类型中最大的元素)。在计算机科学中,可以对字符串(例如'b' > 'a')进行排序。如果输入没有相同数量的整数和字符串,则此输出将包含比输入更多的元素。

这个算法的运行时间是多少?

对于这个例子,假设排序算法Reverse_Cheating_Sort(A)是一个常量 O 1 O (1) 操作。

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Crazy_Sort(A): strings = [] integers = [] num_strings = 0 num_integers = 0 for i = 1 to i = A.length: if type(A[i]) == 'string': num_strings = num_strings + 1 strings.push(A[i]) else: num_integers = num_integers + 1 integers.push(A[i]) if num_strings > num_integers: for i = 1 to i = num_integers .push(1) else if num_integers: for i = 1 to i = num_integers - num_strings:string .push('a') result = [] strings = Reverse_Cheating_Sort(strings) integers = Reverse_Cheating_Sort(integers) for i = 1 to i = strings。长度:result.push(字符串[0])result.push(整数[0])返回结果

×

问题加载…

注意加载…

设置加载…