黑马程序员技术交流社区

标题: 技术贴~~~ [打印本页]

作者: 最亮的靓仔    时间: 2019-6-26 17:50
标题: 技术贴~~~
        嗯,虽然来了总共只有十天,但是意外的学习了挺多东西.比如数组.
        数组排序问题,我以前以为的,我会选择和冒泡,结果在学到这部分的时候,我才发现
我以为的两种方法,结果只是一种,当老师讲解的时候,我才发现都是冒泡...惨遭打脸.
        然后我在老师讲解的时候,学到了一种很好理解的方式,将给大家听听.
       
        //每次都是从arr[0]开始,从未排序的最后一个arr[i]向前依次进行比较,将大的放到未排序的最后一位
        //i控制循环次数,同时也表示每次比较的时候的起点
        for(int i = 0; i < arr.length; i++){
                //j表示i比较的对象,从最有一个元素开始
                for(int j = arr.length - 1; j > i; j--){
                        //将每次比较的最大的元素放置未排序的最后一个位置,下一次排序后就会成为
                        //已排序的第一个元素
                        if(arr[i] > arr[j]){
                                //嗯  数组的交换方法,大家肯定都会,我就不啰嗦了(#^.^#)
                                swap(arr, i, j);       
                        }
                }
        }
       
        除了这些还有好多平时一些小小的顿悟,嗯,这些不好说,也说不清楚.但是像某种让自己觉得
"哇!还能这样,学习了!"方法和思想还是可以写出来的.

        //将数组里的所有数字(1~9)连接成一个数字,不是字符串(虽然我现在知道了字符串可以转成基本数据类型)
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
        //定义输出的数字
        int sum = 0;
        for(int i = 0; i < arr.length - 1; i ++){
                //很棒的想法!!!
                sum = sum * 10 + arr[i];
        }
        //我的方法是每个位置的数字都是乘以10的(arr.length -1 - i)的次幂
        //很啰嗦,同时 - 1 这个操作也容易犯错...
       
        经过几天的学习,我对以后的生活有了更多的期待!以后会有更多的惊(痛)喜(苦)在等着我.(其实,我有点怂了,好辛苦┭┮﹏┭┮.)
       
       




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