http://v.youku.com/v_show/id_XMzMyODk4NTQ4.html附一个视频说明。
快速排序思想:定义一个标杆:1去第一个元素
2 第一次分区之后采用分治思想
3再次对分区的元素进行分治思想
4直到每次分区都只剩下一个元素就完成了排序
package Sort;
//快速排序方式
//1定义中间值
//2分区
//3排序
//
public class QuickSort {
static int[] data=new int[]{5,9,3,8,7,6,41,555,398,1};
//编写交换
public static void swap(int x,int y)
{
int temp=0;
temp=data[x];
data[x]=data[y];
data[y]=temp;
}
//定义快速排序的切分
public static int parition(int[] data,int low,int hight)
{
//定义一个枢纽i
int i=data[low];
//左右开始扫描
while(low<hight)
{
//这里真心要注意呀,小于这个数才++
while(low<hight && data[low]<i)
low++;
while(low<hight && data[hight]>i)
hight--;
swap(low,hight);
}
data[low]=i;
return low;
}
//对指定集合进行排序
public static void Quicksort(int[] data, int x,int y)
{
while(x>=y)
{
return;
}
if(x<y)
{
int key=parition(data,x,y);
Quicksort(data,x,key-1);
Quicksort(data,key+1,y);
}
}
public static void main(String[] args) {
System.out.print("原数组:");
for(int i=0;i<data.length;i++)
{
System.out.print(data[i]+" ");
}
System.out.print("后来的数组:");
Quicksort(data,0,data.length-1);
for(int j=0;j<data.length;j++)
{
System.out.print(data[j]+" ");
}
}
}