常用算法之快速排序---笔记
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]+" ");
}
}
}
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]+" ");
}
}
}
相关文章推荐
- 常用算法之-快速排序
- 算法分析中最常用的几种排序算法(插入排序、希尔排序、冒泡排序、选择排序、快速排序,归并排序)C 语言版
- 常用算法之快速排序
- 常用算法--基本排序算法(冒泡排序,选择排序,插入排序,快速排序,归并排序,桶排序)
- 算法笔记--快速排序
- 【啊哈!算法】算法3:最常用的排序——快速排序
- 常用算法之快速排序
- 算法3:最常用的排序——快速排序
- 算法笔记--快速排序
- 【坐在马桶上看算法】算法3:最常用的排序——快速排序
- 算法第四版学习笔记之快速排序 QuickSort
- 常用算法——快速排序
- iOS算法笔记-快速排序-OC实现
- 【算法与数据结构必备】PHP常用排序算法:冒泡,快速排序,插入排序(一维数组)
- 【一周一算法】算法3:最常用的排序——快速排序
- [转]【坐在马桶上看算法】算法3:最常用的排序——快速排序--作者:ahalei
- 算法学习笔记之快速排序
- 两种常用的交换排序算法--冒泡排序、快速排序
- 8大内部排序算法学习笔记--(2)快速排序 Java实现
- 学习笔记之快速排序——quicklySort——基础算法——java