快速排序的一种java实现
2015-04-25 17:12
357 查看
首先上一张图:
然后写出如下java代码,请多多指正:
public class quickSort {
public static void main(String[] args) {
int[] a = new int[]{6,3,9,14,12,7,2};
mysort(a,0,a.length-1);
for(int i =0;i<a.length;i++)
System.out.println(a[i]);
}
public static void mysort(int[] a,int left,int right) {
int i = left;
int j = right;
int stand = a[left];
while(i<j&&left<=i&&right>=j){
if(a[i]>a[j]&&a[i]==stand){
myswap(a,i,j);
i++;
}
else if(a[i]>a[j]&&a[j]==stand){
myswap(a,i,j);
j++;
}
else if(a[i]==stand){
j--;
}
else if(a[j]==stand){
i++;
}
}
if(left<i-1)
mysort(a,left,i-1);
if(right>i+1)
mysort(a,i+1,right);
}
public static void myswap(int[] a,int i,int j) {
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
然后写出如下java代码,请多多指正:
public class quickSort {
public static void main(String[] args) {
int[] a = new int[]{6,3,9,14,12,7,2};
mysort(a,0,a.length-1);
for(int i =0;i<a.length;i++)
System.out.println(a[i]);
}
public static void mysort(int[] a,int left,int right) {
int i = left;
int j = right;
int stand = a[left];
while(i<j&&left<=i&&right>=j){
if(a[i]>a[j]&&a[i]==stand){
myswap(a,i,j);
i++;
}
else if(a[i]>a[j]&&a[j]==stand){
myswap(a,i,j);
j++;
}
else if(a[i]==stand){
j--;
}
else if(a[j]==stand){
i++;
}
}
if(left<i-1)
mysort(a,left,i-1);
if(right>i+1)
mysort(a,i+1,right);
}
public static void myswap(int[] a,int i,int j) {
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
相关文章推荐
- 快速排序的一种Java实现
- 基本排序_快速排序_Java实现
- 快速排序的原理及java代码实现
- Java 递归与非递归实现快速排序
- 算法代码实现之快速排序,Java实现
- 算法代码实现之三向切分快速排序,Java实现
- 快速排序的一个Java实现
- 快速排序的Java语言与C语言实现
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- 快速排序的java实现
- 快速排序 Java实现-数组-链表
- 冒泡,选择,插入,快速排序在Java中的实现
- java 实现快速排序
- 快速排序(java实现)
- 快速排序--Java实现代码
- 交换排序之快速排序Java实现
- java 排序算法实现 其四:快速排序
- 快速排序Java实现
- 数据结构-快速排序 java实现
- 算法外功修炼之一 快速排序的Java实现