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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lucy198921 中级黑马   /  2013-3-23 19:13  /  2219 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 lucy198921 于 2013-3-24 01:15 编辑

对数组{4,1,3,5,9,7,2,6}
排序优化,运行的时候报错,哪些地方需要修改,加注释吧.

class ArrayDemo
        {
                public static void selectSort(int  [x]  arr)
                        {
                        for (int x=0;x<arr.length-1 ;x++ )
                        {
                        for (int y=x+1 ;y<arr.length;y++ )
                                {
                                if (arr [x] >arr [ y])
                                        {
                                        temp= arr[x];
                                        arr[x]=arr[y];
                                        arr[y]=temp;
                                        }
                                }
                        }
                        }
                        public static void main(String [] args)
                                {
                                int x={4,1,3,5,9,7,2,6}
                                printArr(arr);
                                selectSort(arr);
                                printArr(arr);
                                }
                                public static void printArr( int [x])
                                {
                                        System.out.print("[ ");
                                        for (int x=0;x<arr.length-1 ;x++ );
                                       
                                        {
                                        if (x==arr.length-1)
                                                System.out.print(arr[x]);
                                        else
                                                System.out.print(arr[x]+", ");
                                        }
                                                System.out.println(" ]")
                                
                                        }
                                        }
                                

点评

记得及时处理帖子哦,继续追问,或将分类改成【已解决】,谢谢  发表于 2013-3-23 22:08

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

8 个回复

倒序浏览
试用选择排序看看:
public class XuanZe {
        public static void main(String[] args) {
                int[] a={3,6,4,2,9,5,8,1,7,0};
                int temp=0;int flag=0;
                for(int i=0;i<a.length-1;i++)
                {
                        flag=i;
                        for(int j=i+1;j<a.length;j++)
                        {
                                if(a[flag]<a[j])
                                {
                                        flag=j;
                                }
                        }
                        if(flag!=i)
                        {
                                temp=a[flag];
                                a[flag]=a[i];
                                a[i]=temp;
                        }
                }
                for(int i=0;i<a.length;i++)
                {
                        System.out.print(a[i]+" ");
                }
        }
}

评分

参与人数 1技术分 +2 收起 理由
陈丽莉 + 2 赞一个!

查看全部评分

回复 使用道具 举报
冒泡排序:
public class MaoPao {
        public static void main(String[] args) {
                int[] a={3,6,4,2,9,5,8,1,7,0};
                int temp=0;int flag=0;
                for(int i=0;i<a.length-1;i++)
                {
                        for(int j=0;j<a.length-i-1;j++)
                        {
                                if(a[j]<a[j+1])
                                {
                                        temp=a[j];
                                        a[j]=a[j+1];
                                        a[j+1]=temp;
                                        flag=1;
                                }
                        }
                        if(flag==0)
                                break;
                }
                for(int i=0;i<a.length;i++)
                {
                        System.out.print(a[i]+" ");
                }
        }
}
回复 使用道具 举报
张昶 发表于 2013-3-23 19:19
试用选择排序看看:
public class XuanZe {
        public static void main(String[] args) {

我现在疑问的是代码报错  错在哪  最好是能够加注释.  谢谢
回复 使用道具 举报
接触JAVA, 我个人认为现在需要多练习各种代码,而且需要知道代码运行的意义,总体上来说是先要有一个思路,然后列出步骤,接着编写代码,最后调试运行,当然很多题目都有很多种解法,但是总有一些解法是更为严谨和有效的.     所以我提问就是希望大家能够帮纠错,必要的地方带注释就更好理解了.   谢谢
回复 使用道具 举报
for (int x=0;x<arr.length-1 ;x++ );
这里多了一个分号,是吗?
回复 使用道具 举报
class ArrayDemo
         {
                 public static void selectSort(int  []  arr)        //括号里面(int [] arr)
                         {
                                                        for (int x=0;x<arr.length-1 ;x++ )
                                                        {
                                                                for (int y=x+1 ;y<arr.length;y++ )
                                {
                                                                        if (arr [x] >arr [ y])
                                                                        {
                                         int temp= arr[x];         //定义临时变量需要int
                                         arr[x]=arr[y];
                                         arr[y]=temp;
                                                                        }
                                                                }       
                                                        }
                         }
                         public static void main(String [] args)
                                 {
                                                                        int [] arr=new int[]{4,1,3,5,9,7,2,6};      //数组的定义有误
                                                                        printArr(arr);
                                                                        selectSort(arr);
                                                                        printArr(arr);
                                 }
                                 public static void printArr( int [] arr)
                                 {
                                         System.out.print("[ ");
                                         for (int x=0;x<arr.length-1 ;x++ )       //不要;
                                         
                                         {
                                         if (x==arr.length-1)
                                                 System.out.print(arr[x]);
                                         else
                                                 System.out.print(arr[x]+", ");
                                         }
                                                 System.out.println(" ]");        //需要;
                                 
                                   }
                                         }

这个是选择排序,现在可以运行了。其他地方并未修改,你看一下吧。。
回复 使用道具 举报
刘海东 发表于 2013-3-23 19:34
class ArrayDemo
         {
                 public static void selectSort(int  []  arr)        //括 ...

嗯  谢谢了  .   

我试着去更改了那些地方 .


class ArrayDemo7
        {
                public static void selectSort(int  []  arr)
                        {
                        for (int x=0;x<arr.length-1 ;x++ )
                        {
                        for (int y=x+1 ;y<arr.length;y++ )
                                {
                                if (arr [x] >arr [ y])
                                        {
                                        int temp= arr[x];
                                        arr[x]=arr[y];
                                        arr[y]=temp;
                                        }
                                }
                        }
                        }
                        public static void main(String [] args)
                                {
                                int [] arr =new int [] {4,1,3,5,9,7,2,6};
                                printArr(arr);
                                selectSort(arr);
                                printArr(arr);
                                }
                                public static void printArr( int [ ] arr)
                                {
                                        System.out.print("[ ");
                                        for (int x=0;x<arr.length-1 ;x++ )
                                       
                                        {
                                        if (x==arr.length-1)
                                                System.out.print(arr[x]);
                                        else
                                                System.out.print(arr[x]+", ");
                                        }
                                                System.out.println(" ]");
                               
                                        }
                                        }
                               
回复 使用道具 举报
张昶 中级黑马 2013-3-23 19:47:43
9#
童鞋,我有一个建议:你说多尝试各种方法是对的。但在算法上面,除了特殊的要求外,我个人觉得在写代码上应该要考虑到一个算法运行起来的时间复杂度,和程序运行前后占用电脑的资源等方面来考虑。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马