2011-09-17 10 views
1

이것은 이중 링크 목록에 대한 Java에서 삽입 정렬의 내 구현입니다. 나는 많은 가치를 검사하고 저에게 정확한 산출을 준다. 내 질문은 :삽입 정렬 내 구현

  1. 나는 O (n)이
  2. 이 최적화 할 수있는 것은이하는 알고리즘 시간을 계산하는 방법을 몰라? 누구든지 더 최적화 된 코드를 가리킬 수 있습니까?

참고 : 그 연결리스트의 시작 지점 코드는 감시 림프절을 사용 즉, 감시 node.next 노드를 감시하기 위해 연결리스트와 머리 점의 마지막 노드에 연결리스트 및 감시 node.PREV 지점의 노드를 시작하기 포인트 .

public void sortInsertionAsce(){ 
      DListNode marker,aheadOfCurrent;; 
      DListNode current = head.getNext(); 
      aheadOfCurrent = current.getNext(); 
      marker=current; 
      while(aheadOfCurrent.getNext()!=current){ 
      if(marker.getItem()>aheadOfCurrent.getItem()){ 
       swap(aheadOfCurrent,marker); 
       marker=aheadOfCurrent; 
        while(aheadOfCurrent.getPrev()!=current){ 
         aheadOfCurrent=aheadOfCurrent.getPrev(); 
         if(aheadOfCurrent.getPrev().getItem()>aheadOfCurrent.getItem()){ 
          swap(aheadOfCurrent.getPrev(),aheadOfCurrent); 
         } 
        } 
        aheadOfCurrent=marker; 
       } 
        marker=aheadOfCurrent; 
        aheadOfCurrent=aheadOfCurrent.getNext(); 
      } 
     } 
+0

나는 링크 된 목록을 처음 사용하며 다른 사람으로부터 솔직한 의견을 원했습니다. 이 코드는 작동합니다. 이것이 최적화 될 수 있는지 알고 싶었습니다. – sreeprasad

+1

[CodeReview] (http://codereview.stackexchange.com/)에 대한 질문입니다. –

+1

@LeeAllan이 질문은 4 살이라는 것을 알고 있습니까? 당신이 코드 검토를 추천하는 데 조금 늦은 것 같아요. –

답변

0

beacause 1 중첩 루프입니다. 모든 2 개의 루프가 모든 목록에서 반복됩니다.