JAVA版排序算法之快速排序示例
更新时间:2017年01月03日 14:09:19 作者:EthanQ
这篇文章主要介绍了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 <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程序设计有所帮助。
相关文章
Java中Collections.sort()排序方法举例详解
很多时候都需要对一些数据进行排序的操作,这篇文章主要给大家介绍了关于Java中Collections.sort()方法举例详解的相关资料,使用Collections.sort()可以使用其sort()方法来对List、Set等集合进行排序,需要的朋友可以参考下2024-02-02
Spring invokeBeanFactoryPostProcessors方法刨析源码
invokeBeanFactoryPostProcessors该方法会实例化所有BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor的实例并且执行postProcessBeanFactory与postProcessBeanDefinitionRegistry方法2023-01-01
举例说明JAVA调用第三方接口的GET/POST/PUT请求方式
在日常工作和学习中,有很多地方都需要发送请求,这篇文章主要给大家介绍了关于JAVA调用第三方接口的GET/POST/PUT请求方式的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下2024-01-01
如何使用pipeline和jacoco获取自动化测试代码覆盖率
这篇文章主要介绍了如何使用pipeline和jacoco获取自动化测试代码覆盖率,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-11-11
详解context root修改无效web修改项目路径(eclipse)
这篇文章主要介绍了详解context root修改无效web修改项目路径(eclipse)的相关资料,需要的朋友可以参考下2017-04-04


最新评论