- 论坛徽章:
- 0
|
Java快速排序
Java代码- 1.public class SortTest {
- 2. public static int[] a = {3,6,87,22,93,112,2,54,39,44};
- 3.
- 4. public static void qsort(int[] a,int i,int j) {
- 5. if(i<j) {
- 6. int p = partition(a,i,j);
- 7.
- 8. qsort(a,i,p);
- 9.
- 10. qsort(a,p+1,j);
- 11. }
- 12. }
- 13.
- 14. private static int partition(int[] a,int i,int j){
- 15. int f = i;
- 16. int r = j;
- 17. int x = a[i];
- 18.
- 19. while(true) {
- 20.
- 21. while(a[f] < x)
- 22. f++;
- 23. while(a[r] > x)
- 24. r--;
- 25. if(a[f] > a[r]) {
- 26. int temp = a[f];
- 27. a[f] = a[r];
- 28. a[r] = temp;
- 29. }
- 30. if(f >= r)
- 31. break;
- 32. }
- 33.
- 34. return r;
- 35. }
- 36.
- 37. public static void traverse() {
- 38. StringBuilder sb = new StringBuilder();
- 39. for(int i=0; i<a.length-1; i++) {
- 40. sb.append(a[i]+",");
- 41. }
- 42. sb.append(a[a.length-1]);
- 43. System.out.println(sb.toString());
- 44. }
- 45.
- 46. public static void main(String args[]) {
- 47. qsort(a,0,a.length-1);
- 48. traverse();
- 49. }
- 50.}
复制代码 |
|