简述以下算法的功能(栈st和队列qu的元素类型均为ElemType)。 bool fun(SqQueue *&qu,int i) { ElemType e; int j=1; int n=(qu->rear-qu->front+MaxSize)%MaxSize; if (j[1 || j]n) return false; for (j=1;j<=n;j++) { deQueue(qu,e); if (j!=i) enQueue(qu,e); } return true; }
举一反三
- 中国大学MOOC: 给定以下算法:bool isDuplicate(float* iArrayA, int n){ for (int i = 0; i < n; i++){ for (int j = i + 1; j < n; j++) if (iArrayA[i] == iArrayA[j]) return true; } return false;}其时间复杂度是O( )。[/i]
- 以下程序的运行结果为:int fun(int n){ if(n==1) return 1; else return fun(n-1)+1;} int main(){ int i,j=0; for(i=1;i<3;i++) j += fun(i); printf("%d\n",j); return 0;}
- 给定以下算法:bool isDuplicate(float* iArrayA, int n){ for (int i = 0; i < n; i++){ for (int j = i + 1; j < n; j++) if (iArrayA[i] == iArrayA[j]) return true; } return false;}其时间复杂度是O( )。[/i] A: O(n^2) B: O(n) C: O(n^2 - n) D: O(1)
- 分析以下算法的时间复杂度(需给出推导过程)。int. fun( int n) //n为正整数{ int i,j,s = 0; for (i - 1;i<- n;i++ ) for (j = 3 * i;j<=n;j++) s + =B[ i][]; sun= s; return( sum ) ;}
- 输出结果为___________ main( ) { int i; for (i=1;i <= 5;i++) printf("%d ",f( i )); } f(int n) { static int j=1; j=j*n; return( j ); }