排序类:
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();
}
}