JAVA版排序算法之快速排序示例
更新時(shí)間:2017年01月03日 14:09:19 作者:EthanQ
這篇文章主要介紹了JAVA版排序算法之快速排序,結(jié)合實(shí)例形式分析了基于java版的遍歷、遞歸實(shí)現(xiàn)快速排序功能的具體步驟與操作技巧,需要的朋友可以參考下
本文實(shí)例講述了JAVA快速排序?qū)崿F(xiàn)方法。分享給大家供大家參考,具體如下:
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); //每次遞歸都會(huì)初始化,每次list都不一樣 List<E> less = new LinkedList<E>(); //樞軸,這個(gè)集合只有一個(gè)元素,每次都初始化,都不一樣 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小的 //又進(jìn)行quicksort,對(duì)more,再分成兩部分 more = quickSort(more); //拼接 less pivot more less.addAll(pivotList); //pv-------->[23],到最后只有一個(gè)元素了 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()); } } }
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Java實(shí)現(xiàn)帶頭結(jié)點(diǎn)的單鏈表
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)帶頭結(jié)點(diǎn)的單鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09SpringBoot使用編程方式配置DataSource的方法
這篇文章主要介紹了SpringBoot使用編程方式配置DataSource的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01SpringBoot啟動(dòng)自動(dòng)終止也不報(bào)錯(cuò)的原因及解決
這篇文章主要介紹了SpringBoot啟動(dòng)自動(dòng)終止也不報(bào)錯(cuò)的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09springboot調(diào)用HTML文件注意事項(xiàng)及說明
這篇文章主要介紹了springboot調(diào)用HTML文件注意事項(xiàng)及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11springboot配置文件中敏感數(shù)據(jù)(賬號(hào)密碼)加密方式
這篇文章主要介紹了springboot配置文件中敏感數(shù)據(jù)(賬號(hào)密碼)加密方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04java后臺(tái)啟動(dòng)jar包的一些命令匯總
這篇文章主要介紹了java后臺(tái)啟動(dòng)jar包的一些命令匯總,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-03-03