黑马程序员技术交流社区

标题: 请大神指教,卡住了. [打印本页]

作者: 蓁蓁丶    时间: 2016-3-8 17:43
标题: 请大神指教,卡住了.
        public static void main(String[] args) {
                int[]arr ={12,32,2,43,56};
                maopao(arr);
       

        }
        public static void maopao(int[]arr) {
                for (int i = 0; i < arr.length-1; i++) {
                        for (int j = 0; j < arr.length-1-i; j++) {
                                if(arr[j] > arr[j+1])
                                int temp = arr[j];
                                arr[j] = arr[j+1];
                                arr[j+1] = temp;
                               
                        }
                       
                }
               
        }
                public static void ask(int[]arr) {
                        System.out.println(arr[j]+" ");
                       
                }
}



作者: 木小乐    时间: 2016-3-8 17:55
本帖最后由 木小乐 于 2016-3-8 18:05 编辑
  1. /*
  2. 利用冒泡排序法,将数组中数值进行大小排序
  3. 原理: 在冒泡排序过程中,不断地比较数组中相邻的两个元素,较小者上浮,较大者下沉,整个过程和水中气泡上升类似
  4. 1..从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较.如果前一个比后一个大,交换位置,第一步完成后,最后一个元素就是最大的.
  5. 2..除了最后元素,将剩余的元素进行两两比较,重复第一步,这样倒数第二位就是第二大的元素.
  6. 3..重复以上步骤,直到没有元素需要比较为止
  7. */

  8. class Test_ArrayBubble {
  9.         public static void main(String[] args) {
  10.                 int[] arr = {25,24,12,76,101,96,28};
  11.                 bubbleSort(arr);
  12.                 printArray(arr);
  13.         }

  14.         //遍历所有元素
  15.         //明确返回值类型 只是遍历元素,无须返回值 选用void
  16.         //明确参数列表 int[] arr
  17.         public static void printArray(int[] arr) {
  18.                 for (int i = 0;i < arr.length ;i++ ) {
  19.                         System.out.print(arr[i] + " ");
  20.                 }
  21.         }

  22.         //冒泡法排序数组
  23.         //明确返回值类型 排序,不需返回值 选用void
  24.         //明确参数列表 int[] arr
  25.         public static void bubbleSort(int[] arr) {
  26.                 for (int i = 0;i < arr.length -1 ;i++ ) {
  27.                         for (int j =0;j < arr.length -i -1 ;j++ ) {
  28.                                 if (arr[j] > arr[j +1]) {
  29.                                         int temp = arr[j];
  30.                                         arr[j] = arr[j +1];
  31.                                         arr[j +1] = temp;
  32.                                 }
  33.                         }
  34.                 }
  35.         }


  36. }
复制代码
这是我自己学冒泡的时候写的,你可以看看
作者: woshihuoye    时间: 2016-3-8 18:35
public static void ask(int[]arr) {
                        System.out.println(arr[j]+" ");
这个函数错了。ask(int[] arr)的括号中,函数接收的参数类型是int型的数组。打印数组的值需要遍历。
因此应该
public static void ask(int[]arr) {
                        for(int x = 0;x<arr.length();x++)
                        {
                                   System.out.printlnIn(arr[x]);
                        }
}

作者: luomoss    时间: 2016-3-8 21:30

第一,打印数组打印数组的值需要遍历,一个个数打印
第二,你没有调用打印函数,
打印数组:
        public static void   ask(int[] arr){
                for (int i = 0;i < arr.length ;i++ ) {
                        System.out.print(arr[i] + " ");
                }
        }
作者: 萌萌的_O30IH    时间: 2016-3-8 21:51
看不出来





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2