03.30.07
java中的快速排序算法
标签:Java, 快排, 快速排序算法, 排序算法这几天需要用到快速排序算法,虽然以前写过作业,但也有些遗忘,于是上网搜了一下,发现虽然很多,却或多或少都有些问题,尤其是数据越界,所以我自己调了一下,以下是经过测试的快速排序的程序,希望对大家有些帮助:
- public class QSort {
- /**
- * @author 王仲远 2007-03-30
- * @param pData 需要排序的数组
- * @param left 左边的位置,初始值为0
- * @param right 右边的位置,初始值为数组长度
- */
- public static void QuickSort(int[] pData,int left,int right)
- {
- int i,j;
- int middle,temp;
- i = left;
- j = right;
- middle = pData[left];
- while(true)
- {
- while((++i)<right-1 && pData[i]<middle);
- while((--j)>left && pData[j]>middle);
- if(i>=j)
- break;
- temp = pData[i];
- pData[i] = pData[j];
- pData[j] = temp;
- }
- pData[left] = pData[j];
- pData[j] = middle;
- if(left<j)
- QuickSort(pData,left,j);
- if(right>i)
- QuickSort(pData,i,right);
- }
- public static void main(String[] args){
- int[] pData = new int[10];
- for(int i = 0; i< 10; i++)
- pData[i] = (int)(Math.random()*100);
- for(int i = 0; i<pData.length; i++)
- System.out.print(pData[i]+" ");
- QSort.QuickSort(pData, 0, pData.length);
- System.out.println("\n***********************");
- for(int i = 0; i<pData.length; i++)
- System.out.print(pData[i]+" ");
- }
- }
本文可以自由转载,转载时请保留全文并注明出处:
转载自仲子说 [ http://www.wangzhongyuan.com/ ]
原文链接:http://www.wangzhongyuan.com/archives/13.html
仲远 said,
2007年3月30日 at 13:21
网上的程序都有点毛病,我把这个程序调通了放在这里~~~~
仲远 said,
2007年3月30日 at 19:20
汗...