在java中使用相同队列对队列进行排序
hiii我正在尝试使用相同的队列对队列进行排序我认为它应该可以工作,但它不。。。它失去了一些元素。。。有什么想法吗??这是密码在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++)
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);