黑马程序员技术交流社区

标题: 刚开始接触java,求帮忙 [打印本页]

作者: lemon_tree    时间: 2014-7-17 11:15
标题: 刚开始接触java,求帮忙
  1. class CompareDemo1
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] arr = {4,1,5,2,6,8,7,3,};
  6.                 printArray(arr);
  7.                 getCompare(arr);
  8.                 printArray(arr);



  9.         }
  10.         //定义一个功能,用于打印数组。
  11.         public static void printArray(int[] art){
  12.                 System.out.print("  [ ");
  13.                 for(int count = 0;count < art.length;count++){
  14.                         if(count== art.length-1){
  15.                                 System.out.print(art[count]);
  16.                         }
  17.                         else{

  18.                                 System.out.print(art[count]+",");
  19.                         }
  20.                 }
  21.                 System.out.print(" ]");
  22.         }
  23.         //定义一个功能,用于对数组进行排序,冒泡法。
  24.         public static  int[] getCompare(int[] arr){
  25.                 for(int count = 0 ;count < arr.length-1;count++){
  26.                         for(int i = count + 1;count <arr.length;i ++){
  27.                                 if(arr[i] > arr[count]){
  28.                                         int temp = arr[i];
  29.                                         arr[i] =  arr[count];
  30.                                         arr[count] = temp;
  31.                                 }
  32.                         }
  33.                 }
  34.                 return arr;
  35.         }
  36. }
复制代码


作者: lemon_tree    时间: 2014-7-17 11:19
C:\Users\Administrator.PC-20140616TYMV\Desktop
作者: lemon_tree    时间: 2014-7-17 11:23
我想打印一次数组,然后对数组进行排序,在打印一次数组。

为什么输出结果一大堆,就是不输出数组,求大神帮忙,找出代码中的错误。这组代码是能够编译通过的。
作者: 王景琛    时间: 2014-7-17 11:50
本帖最后由 王景琛 于 2014-7-17 20:27 编辑

冒泡排序写错了!
真确的是
public static  int[] getCompare(int[] arr){
               
                for(int count = 0 ;count < arr.length-1;count++){
                        
                        for(int i = coun;i<arr.length-count-1;i ++){
                                
                                if(arr > arr[i+1]){
                                       
                                        int temp = arr;
         
                                        arr =  arr[i+1];

                                        arr[i+1] = temp;
                                
                                        }
                        
                                }
                                        }
            
                return arr;

                }

作者: lemon_tree    时间: 2014-7-17 19:59
王景琛 发表于 2014-7-17 11:50
冒泡排序写错了!
真确的是
public static  int[] getCompare(int[] arr){

arr  好像是数组类型吧,arr[I+1]  是int 类型的     。  arr  =  arr[i+1]   这句好像不对 啊 ,
作者: 王景琛    时间: 2014-7-17 20:28
lemon_tree 发表于 2014-7-17 19:59
arr  好像是数组类型吧,arr  是int 类型的     。  arr  =  arr   这句好像不对 啊 , ...

写错了,是arr
作者: rekirt    时间: 2014-7-18 01:03
混积分的路过,,,
作者: 阿磊    时间: 2014-7-18 10:13
冒泡法是1和2比 ,2和3比,3和4比,你写的是 选择排序,并且定义i的时候应该是i<arr.length,你写成了count<arr.length      
正确冒泡应该是:
/定义一个功能,用于对数组进行排序,冒泡法。
        public static  int[] getCompare(int[] arr){
                for(int count = 0 ;count < arr.length-1;count++){
                        for(int i = 0;i <arr.length-count-1;i ++){
                                if(arr[i] > arr[i+1]){
                                        int temp = arr[i];
                                        arr[i] =  arr[count];
                                        arr[count] = temp;
                                }
                        }
                }
                return arr;
作者: 阿磊    时间: 2014-7-18 10:16
忘记了 下面的呼唤位置忘记改了应该是arr[i]和arr[i+1]和count没啥关系了
作者: lemon_tree    时间: 2014-7-18 21:13
阿磊 发表于 2014-7-18 10:16
忘记了 下面的呼唤位置忘记改了应该是arr和arr和count没啥关系了

恩,thank you:D
作者: 阿磊    时间: 2014-7-21 08:17

一起学习吧




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