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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

冒泡排序:
    public static void sort(int[] arr)
    {
        for(int x=0; x<arr.length-1; x++)
        {
            for(int y=0; y<arr.length-x-1; y++)
            {
                if(arr[y]>arr[y+1])
                {
                    //交换位置的这部分我想定义一个函数swap()
                   swap(arr[y],arr[y+1]);
                }
            }
        }
    }

    public static void swap(int a, int b)
    {
            int temp = a;
            a = b;
            b = a;
    }

我总是感觉是int型的数组,然后可以这样交换位置,这样是错误的,但是我还是不理解,总是转不过这个弯来,麻烦学哥学姐们给我讲一下

评分

参与人数 1技术分 +1 收起 理由
创出一片辉煌 + 1 加油

查看全部评分

2 个回复

倒序浏览
从内存角度分析去讲swap方法:

在swap方法中,两个参数a和b,作为传入参数,是在栈中的。然后你把a和b的值互换,方法结束,然后这个方法的参数都要出栈,a和b都出栈。

整个过程根本没涉及到数组,所以不对。
回复 使用道具 举报
张 涛 发表于 2012-9-12 11:13
从内存角度分析去讲swap方法:

在swap方法中,两个参数a和b,作为传入参数,是在栈中的。然后你把a和b的值 ...

谢谢,明白了,哥们结合内存讲的很透彻,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马