1. public class QSort {
2.
3. /**
4. *
5. * @param pData 需要排序的数组
6. * @param left 左边的位置,初始值为0
7. * @param right 右边的位置,初始值为数组长度
8. */
9. public static void QuickSort(int[] pData,int left,int right)
10. {
11. int i,j;
12. int middle,temp;
13. i = left;
14. j = right;
15. middle = pData[left];
16. while(true)
17. {
18. while((++i)<right-1 && pData[i]<middle);
19. while((--j)>left && pData[j]>middle);
20. if(i>=j)
21. break;
22. temp = pData[i];
23. pData[i] = pData[j];
24. pData[j] = temp;
25. }
26.
27. pData[left] = pData[j];
28. pData[j] = middle;
29.
30. if(left<j)
31. QuickSort(pData,left,j);
32.
33.
34. if(right>i)
35. QuickSort(pData,i,right);
36. }
37.
38. public static void main(String[] args){
39. int[] pData = new int[10];
40. for(int i = 0; i< 10; i++)
41. pData[i] = (int)(Math.random()*100);
42.
43. for(int i = 0; i<pData.length; i++)
44. System.out.print(pData[i]+" ");
45.
46. QSort.QuickSort(pData, 0, pData.length);
47.
48. System.out.println("\n***********************");
49.
50. for(int i = 0; i<pData.length; i++)
51. System.out.print(pData[i]+" ");
52. }
53.
54. }
快速排序算法
最新推荐文章于 2022-09-21 10:12:32 发布