您的位置:首页 > 编程语言 > Java开发

Java排序算法——快速排序

2016-04-10 16:15 465 查看


import java.util.Arrays;

//=================================================
// File Name       :	Arrays_Quick
//------------------------------------------------------------------------------
// Author          :	Common

//类名:Arrays_Quick
//属性:
//方法:
class Arrays_Quick{
private int[] arrays;
private int curNum;

public Arrays_Quick(int max) {			//建立一个max长度的空数组
super();
arrays = new int[max];
curNum = 0;
}

public void insert(int value){					//往空的数组里面增加元素
arrays[curNum] = value;
curNum++;
}

public void display(){									//显示数组
System.out.println(Arrays.toString(arrays));
}

public void QuickSort(){
int i=0;
int j=arrays.length-1;

recQuickSort(i, j);
}

public void recQuickSort(int i,int j){
// 结束条件
if(i == j )
return;

int key = arrays[i];
int stepi = i; 			// 记录开始位置
int stepj = j; 			// 记录结束位置

while(j > i){
// j <<-------------- 向前查找
if(arrays[j] >= key){
j--;
}else{
arrays[i] = arrays[j];
//i++ ------------>>向后查找
while(j > ++i){
if(arrays[i] > key){
arrays[j] = arrays[i];
break;
}
}
}
}

// 如果第一个取出的 key 是最小的数
if(stepi == i){
recQuickSort(++i, stepj);
return;
}

// 最后一个空位留给 key
arrays[i] = key;

// 递归
recQuickSort(stepi, i);
recQuickSort(j, stepj);
}

}

//主类
//Function        : 	QuickSort
public class QuickSort {

public static void main(String[] args) {
// TODO 自动生成的方法存根
int maxSize = 5;
Arrays_Quick arrays_demo = new Arrays_Quick(maxSize);
arrays_demo.insert(4);
arrays_demo.insert(5);
arrays_demo.insert(3);
arrays_demo.insert(1);
arrays_demo.insert(2);
arrays_demo.display();
arrays_demo.QuickSort();
arrays_demo.display();
}

}


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