首页 > 编程 > Java > 正文

JAVA版排序算法之快速排序示例

2019-11-26 13:20:16
字体:
来源:转载
供稿:网友

本文实例讲述了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());    }  }}

希望本文所述对大家java程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表