二维数组的排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_34979528/article/details/53401489

  
  
  1. public void dAM1() {
  2. int[] a[] = {
  3. { 12, 26, 89, 78, 45, 65, 36 },
  4. { 2, 6, 90, 34, 16, 27, 5 },
  5. { 13, 3, 4, 29, 33, 37, 17 },
  6. { 1, 9, 19, 49, 57, 22, 11 },
  7. { 7, 82, 35, 21, 24, 59, 60 } };
  8. for ( int i = 0; i < a.length; i++) { // 二维数组的长度
  9. for ( int j = 0; j < a[i].length; j++) { // 每个一维数组的长度
  10. int n = j + 1;
  11. for ( int m = i; m < a.length; m++) {
  12. for (; n < a[i].length; n++) {
  13. if (a[i][j] < a[m][n]) {
  14. int max = a[m][n];
  15. a[m][n] = a[i][j];
  16. a[i][j] = max;
  17. }
  18. }
  19. n = 0; // 此处是给n从第二个一维数组开始取0这个坐标
  20. }
  21. }
  22. }
  23. for ( int i = 0; i < a.length; i++) {
  24. for ( int j = 0; j < a[i].length; j++) {
  25. System.out.print(a[i][j] + " ");
  26. }
  27. System.out.println();
  28. }
  29. }
  30. // 二维数组全部排序
  31. public void dAM2() {
  32. int[][] a = {
  33. { 12, 26, 89, 78, 45, 65, 36 },
  34. { 2, 6, 90, 34, 16, 27, 5 },
  35. { 13, 3, 4, 29, 33, 37, 17 },
  36. { 1, 9, 19, 49, 57, 22, 11 },
  37. { 7, 82, 35, 21, 24, 59, 60 } };
  38. int b[] = new int[ 35]; // new一个一维数组,数组长度与二维数组a的所有元素个数是一样的
  39. for ( int i = 0; i < a.length; i++) { // 二维数组长度
  40. for ( int j = 0; j < a[i].length; j++) { // 一维数组的长度
  41. b[j + i * (a[i].length)] = a[i][j]; // 将俩维数组赋值给一维数组,注意坐标的计算
  42. }
  43. }
  44. for ( int i = 0; i < b.length; i++) { // 对一维数组进行选择排序
  45. for ( int j = 0; j < b.length - 1; j++) {
  46. if (b[j] < b[j + 1]) {
  47. int t = b[j];
  48. b[j] = b[j + 1];
  49. b[j + 1] = t;
  50. }
  51. }
  52. }
  53. for ( int i = 0; i < a.length; i++) { // 再将排完序的一维数组赋值给俩维数组,注意坐标的计算
  54. for ( int j = 0; j < a[i].length; j++) {
  55. a[i][j] = b[j + i * (a[i].length)];
  56. }
  57. }
  58. for ( int i = 0; i < a.length; i++) {
  59. for ( int j = 0; j < a[i].length; j++) {
  60. System.out.print(a[i][j] + "\t");
  61. }
  62. System.out.println();
  63. }
  64. }
  65. // 二维数组全部排序
  66. public void dAM3() {
  67. int[][] b = {
  68. { 12, 26, 89, 78, 45, 65, 36 },
  69. { 2, 6, 90, 34, 16, 27, 5 },
  70. { 13, 3, 4, 29, 33, 37, 17 },
  71. { 1, 9, 19, 49, 57, 22, 11 },
  72. { 7, 82, 35, 21, 24, 59, 60 } };
  73. for ( int w = 0; w < b.length; w++) { // 二维数组的长度
  74. for ( int t = 0; t < b[w].length; t++) { // 一维数组的长度
  75. for ( int i = 0; i < b.length; i++) { // 二维数组的长度
  76. for ( int j = 0; j < b[w].length; j++) { // 一维数组的长度
  77. if (b[w][t] > b[i][j]) { // 套在for循环里,俩个一模一样的数组进行比较
  78. int max = 0;
  79. max = b[i][j];
  80. b[i][j] = b[w][t];
  81. b[w][t] = max;
  82. }
  83. }
  84. }
  85. }
  86. }
  87. for ( int i = 0; i < b.length; i++) {
  88. for ( int j = 0; j < b[i].length; j++) {
  89. System.out.print(b[i][j] + " ");
  90. }
  91. System.out.println();
  92. }
  93. }
  94. // 方法四:是对每个单独的数组进行由小到大排序
  95. public void dAM4() { // 对单个的一维数组进行排序
  96. int[][] a = {
  97. { 12, 26, 89, 78, 45, 65, 36 },
  98. { 2, 6, 90, 34, 16, 27, 5 },
  99. { 13, 3, 4, 29, 33, 37, 17 },
  100. { 1, 9, 19, 49, 57, 22, 11 },
  101. { 7, 82, 35, 21, 24, 59, 60 } };
  102. for ( int k = 0; k < a.length; k++) { // 直接调用数组arrays里的sort()这个方法对里边的一维数组进行排序
  103. Arrays.sort(a[k]);
  104. }
  105. for ( int i = 0; i < a.length; i++) {
  106. for ( int j = 0; j < a[i].length; j++) {
  107. System.out.print(a[i][j] + " ");
  108. }
  109. System.out.println();
  110. }
  111. }

            </div>
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_34979528/article/details/53401489

猜你喜欢

转载自blog.csdn.net/wyq188945/article/details/83718354
今日推荐