0
*こんにちは、私はこのトピックをカバーし始めたので、ここで何をすべきか分かりません。本の例は私を助けてくれません。 プログラムは次のとおりです。複雑さは、例えば、N + 1である場合どのようにアルゴリズムの時間の複雑さを見つけるのですか?
public static Stack<Queue<Integer>> qq(Stack<Queue<Integer>> q1)
{
Stack<Queue<Integer>>copy=new Stack<Queue<Integer>>(); // 1
Stack<Queue<Integer>>copy1=new Stack<Queue<Integer>>(); // 1
while(!q1.isEmpty()) // n+1
copy.push(q1.pop()); // n
while(!copy.isEmpty()) // n+1
{
q1.push(copy.top()); // n
copy1.push(copy.pop()); // n
}
while(!copy1.isEmpty()) // n+1
{
Queue<Integer>q=new Queue<Integer>(); // n
copy.push(q); // n
int n1=copy1.top().remove(); // n
while (!copy1.top().isEmpty()==true)
{
for (int i=n1+1;i<copy1.top().head();i++)
copy.top().insert(i);
n1=copy1.top().remove();
}
copy1.pop(); // n
}
while(!copy.isEmpty()) // n+1
copy1.push(copy.pop()); // n
return copy1; // 1
、私たちの先生は、私たちはそのようにそれを残して、nに簡素化しないようにしたいと思います。
私はそれを書いていない複雑さを計算する方法がわかりません、残りは正しいと思います。誰も私にそれを説明できますか? ありがとうございました!