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

算法-快速排序-java实现

2010-09-26 12:31 801 查看
/**
* 快速排序
*
* 快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,
* 然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
*
* @author yaoyuan
*
*/
public class QuickSort {
public static int[] QuickSort(int[] pData, int left, int right) {
System.out.println("left is :" + left + "    " + "right is : " + right);
// left从0开始,right从数组的最大值开始
int i = left, j = right;
int middle, strTemp;
// 获取中间值
middle = pData[(left + right) / 2];
do {
while ((pData[i] < middle) && (i < right)) {
i++;
}
while ((pData[j] > middle) && (j > left)) {
j--;
}
if (i <= j) {
strTemp = pData[i];
pData[i] = pData[j];
pData[j] = strTemp;
i++;
j--;
}
} while (i <= j);
if (left < j) {
QuickSort(pData, left, j);
}
if (right > i) {
QuickSort(pData, i, right);
}
return pData;
}
public static void main(String[] args) {
int[] pData = { 6, 7, 3, 0, 2, 5, 13, 10, 11, 12 };
for (int t = 0; t < pData.length; t++)
System.out.print(pData[t] + " ");
System.out.println("");
QuickSort(pData, 0, pData.length - 1);
System.out.println("");
for (int t = 0; t < pData.length; t++)
System.out.print(pData[t] + " ");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: