快速排序

排序类:

package quick;

public class QuickSort 
{
	private int[] list;
	public QuickSort(int[] list)
	{
		this.list = list;
	}
	
	/**
	 * 快速排序,当左右索引不满足交换条件时,应该不发生交换
	 * @param left
	 * @param right
	 */
	public void sort(int left,int right)
	{
		int low = left;
		int high = right;
		int key = list[left];
		
		while(low < high)
		{
			while(low < high && list[high] >= key)
			{
				high --;
			}
			list[low] = list[high];	//主要处理不满足交换条件
			
			while(low < high && list[low] <= key)
			{
				low ++;
			}
			list[high] = list[low];	//主要处理不满足交换条件
			
			list[low] = key;		//主要处理不满足交换条件
			
			sort(left,low - 1);		//递归左边
			sort(low + 1,right);	//递归右边
			
		}
		
		
	}
	
	public void print()
	{
		for(int i=0;i<list.length;i++)
		{
			System.out.print(" " +list[i]);
		}
	}

}


测试类:

package quick;

public class MainClass {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int[] list = {-9,8,1,2,5,4,7,6,3,9};
		
		QuickSort  qs = new QuickSort(list);
		
		qs.sort( 0, list.length-1);
		
		qs.print();

	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值