给定具有n个元素的未排序数组,如何计算数组中的出现次数,例如i < j < k
和a[i] <a[j]> a[k]
时间复杂度为O(n log n)
。如果更好的时间复杂性是可能的,请让我知道它。 我推出了时间复杂度为O(n^3)
的算法,处理大的n值太慢了。计算a [i] < a[j] > a [k]的有效算法,其中i <j <k在数组中
count = 0; // count for number of tuples following above condition
for(i = 0;i < n; i++)
for(j = i + 1;j < n; j++)
for(k = j + 1;k < n; k++)
if(a[i] < a[j] && a[j] > a[k])
count++;
for example we have an array [1, 2, 3, 1].
Now such occurrences are in index form(0 - based indexing)
[0 1 3]
[0 2 3]
[1 2 3].
你的数据是什么样的?元组是什么意思? – kojow7
数据以整数数组的形式 – coderbond007
你可以给一个小样本数组,你会考虑一个元组是什么? – kojow7