java"><p>快速排序排序相对于普通排序算法效率很高,特别是对于大数据优势体现的相当明显</p><p>下面是java程序</p><p><span style="BACKGROUND-COLOR: #ffffff">主程序:</span></p>
java">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//快速排序
java">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//普通选择排序
java">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;
}
}
}
}
}
java">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
普通选择排序基本上运算不出来