java实现快速排序算法。
package myDDmo;
/**
* java实现快速排序算法
* @author trust the process
*
*/
public class Demo {
public static void main(String[] args) {
System.out.println("======java实现快速排序算法======");
//创建一个数组
int[] a = {37,7,44,48,6,12,69,51};
//对该数组进行快速排序
quick_sort(a,0,a.length-1);
//打印排序后的数组
for(int i=0;i<a.length;i++){
System.out.print(a[i]+"\t");
}
}
public static void quick_sort(int[] array,int begin,int end){
if (begin >= end) { //如果数组的长度为1,则停止比较
return;
}
int i = begin; //数组第一个元素
int j = end; //数组最后一个元素
int key = array[i]; //每次要比较的标准数
boolean flag = true; //用于控制判断过程是否继续进行
while(i != j){
if(flag == true){
if (key > array[j]) {
change(array, i, j); //交换元素
flag = false;
}else {
j--;
}
}else {
if (array[i] > key) {
change(array, i, j); //交换元素
flag = true;
}else {
i++;
}
}
}
//被分隔的两部分,用同样的方法继续比较
quick_sort(array, j+1, end);
quick_sort(array, 0, j-1);
}
public static void change(int[] array,int m,int n){
int temp = 0; //临时变量,用于交换数组元素
temp = array[m];
array[m] = array[n];
array[n] = temp;
}
}
结果如下: