2017-05-11 2 views
0

最初の要素を使用してそれを他のすべての要素と比較し、最初の要素の新しい位置がピボット点になるクイックソートを作成する必要があります。私を助けてください。関連するサブアレイの最初の要素がピボット点であるクイックソートが必要

+0

あなたは何か試したことがありますか、あなただけの宿題をお探しですか? – JSantos

+0

今までのコードを共有して、失敗した位置を指摘できますか?そうすれば、問題の理解と解決に役立ちます。 – user3079834

答えて

0

3つのリストを作成し、それらがピボットより高いか、ピボットより低いか、ピボットと等しいかによって値を区切ることで、それを実行できます。たとえば:

public static List<Integer> quickSort(List<Integer> n) { 
     List<Integer> low = new ArrayList<Integer>(); 
     List<Integer> piv = new ArrayList<Integer>(); 
     List<Integer> high = new ArrayList<Integer>(); 
     int pivot = n.get(0); 
     for (Integer d : n) { 
      if (d < pivot) 
       low.add(d); 
      else if (d > pivot) 
       high.add(d); 
      else 
       piv.add(d); 
     } 
     low.addAll(piv); 
     low.addAll(high); 
     return low; 
関連する問題