所以我有这个算法,我试图确定算法分析问题的基本操作。这个给定算法的“基本操作”究竟是什么
这里是代码:
median(int array[]){
int k = array.length();
int n = k/2;
for(int i = 0; i < k; i++){
int numsmaller = 0;
int numequal = 0;
for(int j = 0; j < k; k++){
if(array[j] < array[i]){
numsmaller++;
}else
if(array[j] == array[i]){
numequal++;
}
if(numsmaller < n && n <= (numsmaller + numequal){
return array[i]
}
}//inner loop
}//outter loop
}//end of function
我目前的印象是,这个算法的基本操作是两个,如果函数的内环内的语句。 令我困惑的是,我不确定基本操作是否是每次迭代都会执行的布尔表达式本身,以检查array [j] < array [i]以及array [j]是否等于array [i] 。或者,天气的基本操作是当任何if语句为真时发生的代码执行。有人可以给我一个解释固体中的算法分析方面该算法的基本操作会是什么:)请和,不胜感谢
我认为这是,当任何一个陈述是真实的 –