A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lemon_tree 中级黑马   /  2014-7-17 11:15  /  1783 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码

10 个回复

倒序浏览
C:\Users\Administrator.PC-20140616TYMV\Desktop
回复 使用道具 举报
我想打印一次数组,然后对数组进行排序,在打印一次数组。

为什么输出结果一大堆,就是不输出数组,求大神帮忙,找出代码中的错误。这组代码是能够编译通过的。
回复 使用道具 举报
本帖最后由 王景琛 于 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;

                }
回复 使用道具 举报
王景琛 发表于 2014-7-17 11:50
冒泡排序写错了!
真确的是
public static  int[] getCompare(int[] arr){

arr  好像是数组类型吧,arr[I+1]  是int 类型的     。  arr  =  arr[i+1]   这句好像不对 啊 ,
回复 使用道具 举报
lemon_tree 发表于 2014-7-17 19:59
arr  好像是数组类型吧,arr  是int 类型的     。  arr  =  arr   这句好像不对 啊 , ...

写错了,是arr
回复 使用道具 举报
rekirt 中级黑马 2014-7-18 01:03:59
7#
混积分的路过,,,
回复 使用道具 举报
阿磊 中级黑马 2014-7-18 10:13:30
8#
冒泡法是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;
回复 使用道具 举报 1 0
阿磊 中级黑马 2014-7-18 10:16:43
9#
忘记了 下面的呼唤位置忘记改了应该是arr[i]和arr[i+1]和count没啥关系了
回复 使用道具 举报
阿磊 发表于 2014-7-18 10:16
忘记了 下面的呼唤位置忘记改了应该是arr和arr和count没啥关系了

恩,thank you:D
回复 使用道具 举报

一起学习吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马