我见过最通俗易懂的快速排序过程讲解,转自《坐在马桶上看算法:快速排序》
2018-03-28 14:53
573 查看
https://blog.csdn.net/vayne_xiao/article/details/53508973###;
public static int Partition(int[] a,int p,int r){
int x=a[r-1];
int i=p-1;
int temp;
for(int j=p;j<=r-1;j++){
if(a[j-1]<=x){
// 交换(a[j-1],a[i-1]);
i++;
temp=a[j-1];
a[j-1]=a[i-1];
a[i-1]=temp;
}
}
//交换(a[r-1,a[i+1-1]);
temp=a[r-1];
a[r-1]=a[i+1-1];
a[i+1-1]=temp;
return i+1;
}
public static void QuickSort(int[] a,int p,int r){
if(p<r){
int q=Partition(a,p,r);
QuickSort(a,p,q-1);
QuickSort(a,q+1,r);
}
}
//main方法中将数组传入排序方法中处理,之后打印新的数组
public static void main(String[] stra){
int[] a={7,10,3,5,4,6,2,8,1,9};
QuickSort(a,1,10);
for (int i=0;i<a.length;i++)
System.out.println(a[i]);
}
public static int Partition(int[] a,int p,int r){
int x=a[r-1];
int i=p-1;
int temp;
for(int j=p;j<=r-1;j++){
if(a[j-1]<=x){
// 交换(a[j-1],a[i-1]);
i++;
temp=a[j-1];
a[j-1]=a[i-1];
a[i-1]=temp;
}
}
//交换(a[r-1,a[i+1-1]);
temp=a[r-1];
a[r-1]=a[i+1-1];
a[i+1-1]=temp;
return i+1;
}
public static void QuickSort(int[] a,int p,int r){
if(p<r){
int q=Partition(a,p,r);
QuickSort(a,p,q-1);
QuickSort(a,q+1,r);
}
}
//main方法中将数组传入排序方法中处理,之后打印新的数组
public static void main(String[] stra){
int[] a={7,10,3,5,4,6,2,8,1,9};
QuickSort(a,1,10);
for (int i=0;i<a.length;i++)
System.out.println(a[i]);
}
相关文章推荐
- 我见过最通俗易懂的快速排序过程讲解,转自《坐在马桶上看算法:快速排序》
- 通俗易懂的讲解----面向对象和面向过程的区别
- 【坐在马桶上看算法】算法3:最常用的排序――快速排序
- 如何记牢容易忘记的快速排序(坐在马桶上看算法:快速排序)
- 坐在马桶上看算法:快速排序
- 机试算法讲解:第1题 冒泡排序与快速排序
- 坐在马桶上学算法@最常用的排序——快速排序
- 机试算法讲解:第2题 结构体之快速排序
- 【坐在马桶上看算法】算法3:最常用的排序——快速排序
- 从算法入手讲解SQL Server典例实现过程
- 坐在马桶上看算法(3):快速排序
- "选择排序"算法-之通俗易懂原理讲解-java编程
- 坐在马桶上看算法:快速排序(转载整理)
- 通俗易懂的KMP匹配算法讲解,NEXT【i】
- 【坐在马桶上看算法】算法3:最常用的排序——快速排序
- 【坐在马桶上看算法】算法3:最常用的排序——快速排序
- 学习算法 -- 马桶排序、冒泡排序和快速排序
- ORB算法讲解的通俗易懂
- [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序
- MVP模式简单讲解,通俗易懂