java快速排序算法_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 > List quickSort(List arr) {
if(arr.size()<=1) {
return arr;
}
E pivot = arr.get(0);
//每次递归都会初始化,每次list都不一样
List less = new LinkedList();
//枢轴,这个集合只有一个元素,每次都初始化,都不一样
List pivotList = new LinkedList();
List more = new LinkedList();
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程序设计有所帮助。
java快速排序算法_JAVA版排序算法之快速排序示例相关推荐
- java代码实现希尔排序_Java希尔排序算法代码实现
Java希尔排序算法代码实现 时间:2017-08-30 来源:华清远见JAVA学院 什么是Java希尔排序算法呢? 希尔排序算法实际上是一种分组插入的排序算法,又被称为缩小增量排序.今天华清 ...
- java常用的7大排序算法汇总
这段时间闲了下来,就抽了点时间总结了下java中常用的七大排序算法,希望以后可以回顾! 1.插入排序算法 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经 ...
- Java常用的八种排序算法与代码实现
在Java的时候,对于排序的应用需要熟练的掌握,这样才能够确保Java学习时候能够有扎实的基础能力.那Java有哪些排序算法呢?本文小千就来详细说说Java经典的8种排序算法. 经典的排序算法有八种, ...
- 程序兵法:Java String 源码的排序算法(一)
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第103篇原创 <程序兵法:Java Str ...
- 【Java进阶营】各种排序算法的深入分析及java实现
排序一直以来都是让我很头疼的事,以前上<数据结构>打酱油去了,整个学期下来才勉强能写出个冒泡排序.由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间 ...
- JAVA:实现 gnome sort侏儒排序算法(附完整源码)
JAVA:实现 gnome sort侏儒排序算法 package com.thealgorithms.sorts;import static com.thealgorithms.sorts.SortU ...
- 算法基础:排序算法之冒泡排序
算法基础:排序算法之冒泡排序 实现:数列有序排序 思想:已知一个数列,令数列中相邻的两个元素一一做比较,按照小大的顺序(或从大到小的顺序),如果前一个数比后一个数大(或后一个数比前一个数大),则互换( ...
- 数据结构之排序算法:内部排序算法的应用与比较
排序算法:内部排序算法的应用与比较 思维导图: 比较: 应用: 思维导图: 比较: 应用:
- 冒泡排序算法和选择排序算法比较
冒泡排序算法详细内容见→冒泡排序算法. 选择排序算法详细内容见→选择排序算法. 冒泡排序算法和选择排序算法的区别: 冒泡排序是比较相邻位置的两个数:而选择排序是按顺序比较,找出最大值或者最 ...
最新文章
- 《系统集成项目管理工程师》必背100个知识点-80项目变更管理在软件项目管理中的主要活动内容...
- Zenoss学习杂记(十)
- python控制台输出到文件_Python print 立即打印内容到重定向的文件
- 多线程(6)线程同步
- mysql数据库的变量有哪些_[数据库]MySQL变量
- MSSOAP与WebService
- 这回把Spring @Async彻底搞懂了
- mysql数据迁移到sqlserver_技术分享 | 使用OGG实现Oracle到MySQL数据平滑迁移
- ArcGIS矢量图层面积计算方法
- Flink中的时间和窗口 完整使用 (第六章)
- 深度学习笔记(50) 一维到三维推广
- Unity材质:玻璃
- miui11稳定版获取完整root_MIUI11系统怎么样刷入开发版获得Root超级权限
- Unity导入模型贴贴图一面有贴图另一面透明的解决方法
- 运维工程师主要是做什么的?和网络工程师有啥区别?
- 如何彻底禁用 werfalut.exe
- EMC电磁兼容5:静电部分_1_共模信号、差模信号,静电为什么是共模信号
- 博途中位值平均滤波算法(附SCL完整代码)
- Excel实现数据转置,很方便操作
- 通俗易懂的讲解一下量化操作(深度学习模型定点化)