快速排序算法Java
来源:互联网 发布:安卓网络监控 编辑:程序博客网 时间:2024/06/06 14:11
<p>快速排序排序相对于普通排序算法效率很高,特别是对于大数据优势体现的相当明显</p><p>下面是java程序</p><p><span style="BACKGROUND-COLOR: #ffffff">主程序:</span></p>
import java.util.*;/** * * @author Acer */public class Sort { /** * @param args the command line arguments */ public static void main(String[] args) { int size=10000000;//<span style="color:#ff0000;">千万数据</span> long[] SJ=new long[size]; Random random1 = new Random();//获得随机数 JC jc=new JC(); for(int i=0;i<size;i++) { SJ[i]=random1.nextInt(); //System.out.println(random1.nextInt()); } System.out.print("请输入选择:"); int c; Scanner input =new Scanner(System.in); c=input.nextInt(); switch(c) { case 1: //普通排序算法 long startTime=System.currentTimeMillis(); //获取开始时间 SelectSort s1=new SelectSort(); s1.Select(SJ, size); long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("普通排序运行时间: "+(endTime-startTime)+"ms"); break; case 2: //快速排序算法 startTime=System.currentTimeMillis(); //获取开始时间 QuickSort s2=new QuickSort(); s2.Qsort(0,size-1,SJ); endTime=System.currentTimeMillis(); //获取结束时间 if(jc.PD(SJ,size))//判断是否有序 System.out.println("快速排序运行时间: "+(endTime-startTime)+"ms"); break; } // TODO code application logic here } <p>}</p>
QuickSort//快速排序
public class QuickSort { public int Fdsort(int low,int high,long SJ[]) { long s=SJ[low]; long flag=SJ[low]; while(low<high) { while(low<high && SJ[high]>=flag) --high; SJ[low]=SJ[high]; while(low<high && SJ[low]<=flag) ++low; SJ[high]=SJ[low]; } SJ[low]=flag; return low; } public void Qsort(int low,int high,long SJ[]) { if(low<high) { int flag=Fdsort(low,high,SJ); Qsort(low,flag-1,SJ); Qsort(flag+1,high,SJ); } } }
SelectSort//普通选择排序
public class SelectSort {//选择排序 public void Select(long SJ[],int size){ long t; for(int i=0;i<size;i++) { for(int j=i+1;j<size;j++) { if(SJ[i]>SJ[j]) { t=SJ[i]; SJ[i]=SJ[j]; SJ[j]=t; } } } }}
public class JC { public boolean PD(long SJ[],int size){ for(int i=1;i<size;i++){ if(SJ[i-1]>SJ[i]) return false; } return true; }}
计算结果:(tool:notebeans)
请输入选择:2
快速排序运行时间: 1469ms
普通选择排序基本上运算不出来
1 0
- java快速排序算法
- Java快速排序算法
- Java快速排序算法
- Java快速排序算法
- java快速排序算法
- java快速排序算法
- JAVA快速排序算法
- java快速排序算法
- 快速排序算法(java)
- java快速排序算法
- java 快速排序算法
- Java算法快速排序
- java 快速排序 算法
- java快速排序算法
- java 快速排序 算法
- Java快速排序算法
- 快速排序算法java
- JAVA快速排序算法
- Python实用函数
- 单例模式及其序列化/反序列化
- 一个非常简单的知识点
- 统计学:离散型和连续型随机变量的概率分布
- Spring中@Param和Mybatis中的@Param
- 快速排序算法Java
- Spring集成Hibernate注意事项
- 让你的Android studio 更美起来
- 关于django celery配置的backend
- Android线程池详解
- 用 C# 绘制曲线图(Curve图,增加自动适应和多曲线绘制)
- 工厂模式
- 存储过程与函数的区别
- vs2010 资源在另一个编辑器中打开