java的排序算法

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  316.37. //fixdown 38. private void fixDown(int k) {

  317.39. int j;

  318.40. while ((j = k << 1) <= size) {

  319.41. if (j < size && queue[j]<queue[j+1])

  320.42. j++;

  321.43. if (queue[k]>queue[j]) //不用交换 44. break;

  322.45. SortUtil.swap(queue,j,k);

  323.46. k = j;

  324.47. }

  325.48. }

  326.49. private void fixUp(int k) {

  327.50. while (k > 1) {

  328.51. int j = k >> 1;

  329.52. if (queue[j]>queue[k])

  330.53. break;

  331.54. SortUtil.swap(queue,j,k);

  332.55. k = j;

  333.56. }

  334.57. }

  335.58. }

  336.59.}

  337.60.SortUtil:

  338.1.package org.rut.util.algorithm;

  339.2.import org.rut.util.algorithm.support.BubbleSort;

  340.3.import org.rut.util.algorithm.support.HeapSort;

  341.4.import org.rut.util.algorithm.support.ImprovedMergeSort;

  342.5.import org.rut.util.algorithm.support.ImprovedQuickSort;

  343.6.import org.rut.util.algorithm.support.InsertSort;

  344.7.import org.rut.util.algorithm.support.MergeSort;

  345.8.import org.rut.util.algorithm.support.QuickSort;

  346.9.import org.rut.util.algorithm.support.SelectionSort;

  347.10.import org.rut.util.algorithm.support.ShellSort;

  348.11.12.public class SortUtil {

  349.13. public final static int INSERT = 1;

  350.14. public final static int BUBBLE = 2;

  351.15. public final static int SELECTION = 3;

  352.16. public final static int SHELL = 4;

  353.17. public final static int QUICK = 5;

  354.18. public final static int IMPROVED_QUICK = 6;

  355.19. public final static int MERGE = 7;

  356.20. public final static int IMPROVED_MERGE = 8;

  357.21. public final static int HEAP = 9;

  358.22. public static void sort(int[] data) {

  359.23. sort(data, IMPROVED_QUICK);

  360.24. }

  361.25. private static String[] name={

  362.26. “insert”,“bubble”,“selection”,“shell”,“quick”,“improved_quick”,“merge”,“improved_merge”,“heap”

  363.27. };

  364.28.

  365.29. private static Sort[] impl=new Sort[]{

  366.30. new InsertSort(),

  367.31. new BubbleSort(),

  368.32. new SelectionSort(),

  369.33. new ShellSort(),

  370.34. new QuickSort(),

  371.35. new ImprovedQuickSort(),

  372.36. new MergeSort(),

  373.37. new ImprovedMergeSort(),

  374.38. new HeapSort()

  375.39. };

  376.40. public static String toString(int algorithm){

  377.41. return name[algorithm-1];

  378.42. }

  379.43.

  380.44. public static void sort(int[] data, int algorithm) {

  381.45. impl[algorithm-1].sort(data);

  382.46. }

  383.47. public static interface Sort {

  384.48. public void sort(int[] data);

  385.49. }

  386.50. public static void swap(int[] data, int i, int j) {

  387.51. int temp = data[i];

  388.52. data[i] = data[j];

  389.53. data[j] = temp;

  390.54. }

  391.55.}

[1][2][3]

何不去远方!昆明呀——赶一个花海;

java的排序算法

相关文章:

你感兴趣的文章:

标签云: