在java中使用相同队列对队列进行排序

在java中使用相同队列对队列进行排序,java,sorting,queue,Java,Sorting,Queue,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++)

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);
        }
    }   
}
public void sort()
{
对于(int i=1;i
它失去了一些元素…有什么想法吗

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


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

请阅读。同时提供输入和输出,或者使用
int I=0;I
Vertex tmp1=dequeue();
Vertex tmp2=dequeue();
...
enqueue(max);