quicksort.java

来自「包括了5个基本排序过程」· Java 代码 · 共 58 行

JAVA
58
字号

public class QuickSort 
{
	private double[] unsorted;
	private double[] sorted;
	public QuickSort ()
	{
	}
	public QuickSort (double[] temp)
	{
		setdata(temp);
		sort();
	}
	public void setdata(double[] temp)
	{
		unsorted=new double[temp.length];
		sorted=new double[temp.length];
		for(int i=0;i<temp.length;i++)
			{
				sorted[i]=unsorted[i]=temp[i];
				//System.out.println(sorted[i]);
			}
	}
	public void sort()
	{
		sortting(0,sorted.length-1);
	}
	public double[] getresult()
	{
		return sorted;
	}
	private void sortting(int L,int R)
	{
		if(L>=R)return;
		double tem=0;
		int m=L;//选取第一个为基准
		for(int i=L+1;i<=R;i++)
		{
			if(sorted[i]<=sorted[m])
			{
				tem=sorted[m+1];
				sorted[m+1]=sorted[i];
				sorted[i]=tem;
				
				tem=sorted[m+1];
				sorted[m+1]=sorted[m];
				sorted[m]=tem;
				
				m++;
			}
			
		}
		sortting(L,m-1);//这里容易边界溢出。。比如m-1<L
		sortting(m+1,R);
		
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?