您的位置:首页 > 其它

常用算法之快速排序---笔记

2017-01-06 14:12 459 查看
算法过程描述:

1、在数组中,选择其中一个作为“基数”;

2、所有小于“基数”的都移到“基数”左边,所有大于“基数”的数据都移到“基数”右边;

3、对于“基数”左右两个子集,分别重复1、2步骤,直到所有子集剩下一个数据为止,排序完成;

public class QuickSortTest{

public static void sort(int[] array, int low, int high){

if(low>high){

return;

}

int i=low,j=high;

int index = array[i];

while(i<j){

while(i<j && array[j] >=index){

j--;

}

if(i<j){

array[i]=array[j];

i++;

}

while(i<j && array[i]<index){

i++;

}

if(i<j){

array[j]=array[i];

j--;

}

}

array[i]=index;

sort(array,low,i-1);

sort(array,i+1,high);

}

public static void main(String[] args){

int a[]={2,9,0,8,7,1,5,4,3,6};

sort(a,0,a.length-1);

for(int i=0;i<a.length;i++){

System.out.print(a[i]+" ");

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: