java实现快速排序

package MySort;

public class FastSort {
    public static void main(String[] args){
    	int[] array={10,20,50,30,84,48,25,52};
    	FastSort fs=new FastSort();
    	fs.fastSort(array,0,array.length-1);
    	for(int i=0;i<=array.length-1;i++){
    		System.out.println(array[i]);
    	}
    }
    public int position(int[] sortNumber,int low,int high){
    	int position=sortNumber[low];
	    //从区间两端向中间扫描,直到low=high为止
    	while(low<high){
		    //外层循环管不到这里,所以还要判断low和high
		    //从右向左扫描,直到找到第一个小于基准的元素
    		while(low<high&&position<=sortNumber[high])    			       
    			high--;
    		if(low<high)//否则当计算到i=j时,也会执行赋值
    		    sortNumber[low++]=sortNumber[high];
    		while(low<high&&sortNumber[low]<=position)
    			low++;
    		if(low<high)
    		    sortNumber[high--]=sortNumber[low];
    	}
	    //把基准元素放到合适的位置
    	sortNumber[low]=position;
    	//把基准元素的位置返回             
    	return low;
    }
    public void fastSort(int[] array,int low,int high){
    	if(low<high){
    	    int pos=position(array,low,high);
    	    fastSort(array,low,pos-1);
    	    fastSort(array,pos+1,high);
    	}
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值