【问题标题】:sorting a queue using same queue in java在java中使用相同的队列对队列进行排序
【发布时间】:2015-01-01 11:50:07
【问题描述】:

hiii 我正在尝试使用相同的队列对队列进行排序,我认为它应该可以工作,但它没有......它丢失了一些元素......任何想法?这是代码

public void sort()
{
    for(int i=1; i<size; i++)
    {
        Vertex tmp1=dequeue();
        Vertex tmp2=dequeue();
        Vertex max=tmp1;
        for(int j=1; j<size; j++)
        {
            if(tmp1.weight <= tmp2.weight)
            {
                enqueue(tmp1);
                tmp1=dequeue();
                max=tmp2;
            } else {
                max=tmp1;
                enqueue(tmp2);
                tmp2=dequeue();}
            }
            enqueue(max);
        }
    }   
}

【问题讨论】:

  • 也提供输入输出
  • 使用int i=0; i&lt;sizeint i=1; i&lt;=size,与for( int j 相同。 enqueue()dequeue() 是什么?

标签: java sorting queue


【解决方案1】:

它丢失了一些元素......有什么想法吗?

您丢失元素的原因是您调用dequeue() 的次数比调用enqueue() 的次数多:

Vertex tmp1=dequeue();
Vertex tmp2=dequeue();
...
enqueue(max);

在上面,您有两个 dequeue() 调用与一个 enqueue() 调用(我不包括来自内部循环的调用,因为它们完全平衡)。

【讨论】:

    猜你喜欢
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多