2012-04-26 7 views
0

私はmergeが既に2 linkedListをソートし、最終出力をSorted LinkedListとして取得しているという質問がありました。 だから私は、マージソートアルゴリズムのマージメソッドを使用し、出力を得た それは実際にそれを行う正しい方法か私は他の方法に従う必要があります。ここでMergeはすでにソート済みのLinkedListをJavaで実装しました

はunderstanding-

private <T extends Comparable<T>> List<T> merge(List<T> left , List<T> right){ 
    List<T> result = new ArrayList<T>(); 
    while(left.size()>0 && right.size()>0){ 
     //Left is less than right 
     if(left.get(0).compareTo(right.get(0))<0) 
      result.add(left.remove(0)); //add the left if small and remove it from the list    
     else 
      result.add(right.remove(0)); 
    } 

    //if left size is greater than 0 , the needed to add left to result 
    //it proves that if any of the sizes of left/right is more then those are greater size 
    if(left.size()>0) 
     result.addAll(left); 
    else 
     result.addAll(right); 


    return result; 
} 

私の入力のためのコードの一部である -

List<String> sorted1 = new LinkedList<String>(); 
      sorted1.add("Asdsd"); 
      sorted1.add("ReR"); 
      sorted1.add("asdasd"); 
      sorted1.add("ghjhj"); 
      sorted1.add("zxcxc"); 
      List<String> sorted2 = new LinkedList<String>(); 
      sorted2.add("Awdf"); 
      sorted2.add("Gautom"); 
      sorted2.add("asa"); 
      sorted2.add("ggg"); 
      sorted2.add("qwq"); 
      sorted2.add("rtrt"); 

      System.out.println("ORIGINAL SoRTED LIST\n" + 
        "=================\n" + 
        sorted1 + "and "+sorted2+"\n"); 
      List<String> sorted_String2 = new MergeSortAbhishek().merge(sorted1,sorted2); 
      System.out.println("\nFINAL SORTED LIST\n" + 
        "=================\n" + 
        sorted_String2 + "\n"); 
+1

これを通過できますか?何か助けになるかもしれない。 http://stackoverflow.com/questions/1774256/java-code-review-merge-sorted-lists-into-a-single-sorted-list –

+0

マージソートアルゴリズムのマージメソッドとはどういう意味ですか?あなたはそれを自分で実装したのですか、既存のものを使用しましたか? –

答えて

0

は、右の私にね。 "merge sort from merge arg"という意味のコードを見ずにはっきり言うことはできませんが、コンセプトは正しいです。

参考までに、これはコードレビューサイトにとってより適切な質問です。個人的に

CodeReview Stack Exchange

0

私は正確に2つのソートリストをマージしない特殊な方法を使用して好みます。 mergeメソッドからMergeSortAbhishekは何も並べ替えていないので混乱することがあります。そして、このメソッドはソートのためにいくつかの特別なアクションを行うかもしれません。

関連する問題