2015-01-01 5 views
-1

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); 
     } 
    } 
} 
+0

[작은 프로그램 디버깅 방법] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)을 읽어보십시오. – honk

+0

입력과 출력도 제공하십시오. – Sarz

+0

'int i = 0; i <크기 '또는'int i = 1; i <= size','for (int j')와 동일하지만,'enqueue()'와'dequeue()는 무엇인가? – Charlie

답변

0

코드는?

당신이 요소를 잃는 이유는 당신이 enqueue() 전화보다 당신이 dequeue() 번 이상 호출하고 있다는 것입니다 :

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

을 위, 당신은 내가 아니다 (한 enqueue() 통화에 대한 두 dequeue() 통화를 내부 루프의 호출은 완벽하게 균형이 잡혀 있기 때문에 포함).

관련 문제