JAVA 버전 정렬 알고리즘의 빠른 정렬 예

본고는 JAVA의 빠른 정렬 실현 방법을 실례로 다루고 있다.다음과 같이 여러분에게 참고할 수 있도록 공유합니다.

package com.ethan.sort.java;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class QuickSort {
  public static <E extends Comparable<? super E>> List<E> quickSort(List<E> arr) {
    if(arr.size()<=1) {
      return arr;
    }
    E pivot = arr.get(0);
    // , list 
    List<E> less = new LinkedList<E>();
    // , , , 
    List<E> pivotList = new LinkedList<E>();
    List<E> more = new LinkedList<E>();
    for(E i:arr){
      if(i.compareTo(pivot)<0) {
        less.add(i);
      } else if(i.compareTo(pivot)>0) {
        more.add(i);
      } else {
        pivotList.add(i);
        //System.out.println("p---->"+i);
      }
    }
    // 
    less = quickSort(less);// pivot 
    // quicksort, more, 
    more = quickSort(more);
    //  less pivot more
    less.addAll(pivotList);
    //pv-------->[23], 
    System.out.println("pv-------->"+pivotList);
    less.addAll(more);
    return less;
  }
  /**
   * @param args
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Integer[] arr = {23,2,8,43,22,32,4,5,34};
    List l = quickSort(Arrays.asList(arr));
    Iterator i = l.iterator();
    while(i.hasNext()) {
      System.out.println(i.next());
    }
  }
}

본고에서 기술한 것이 여러분의 자바 프로그램 설계에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기