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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© czn_Stream 初级黑马   /  2019-6-26 14:49  /  691 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

来黑马也已经十天左右了,课程也走完了第一阶段的六天。
六天的学习内容其实也不是很多,第一天的环境搭建+一些Java基础,第二天的数据类型+if选择,第三天的swith选择与循环,第四天的数组与第五天的方法,再加上第六天的一些总结,都是一些比较简单但其实非常重要的知识。
今天的话,来和大家聊一下关于数组排序的情况。
在之前自习的时候,葛老板提供的是方法是选择排序,先附上代码。
public static void selectSortArr(int[] arr) {
    /*实现:
        将数组从小到大排序
        最外层循环 i 表示数组索引,即当前循环想要实现的目标是:
             arr arr[i+1] ~ arr[arr.length - 1] 之间所有的数据进行比较    ( 内层循环功能 )
            只要比 arr 小就进行交换,从而将索引 i 到最后 所有的数据中最小的数据保存到索引 i
            随着i++的步进,便能实现每一次的循环都能得到 当前索引 最后索引 的数组最小值
     */
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                //将较小的数保存在索引为 i 的位置,永远保证索引为 i 的位置上为最小值
                if(arr > arr[j]){
                    int temp = arr;
                    arr = arr[j];
                    arr[j] = temp;
                }
            }
        }
}
其实不论是不是数组排序,方法最重要的便是明确你想要怎么实现这个它。
而对于选择排序而言,我们便是要知道我们是想要把自  当前索引    最后索引  的所有数据中  最小的数据  保存到  当前索引。那么思路就来了,将外层循环设定为  当前索引,而内存循环设定为要进行比较的索引,遇到小的便保存到  当前索引,这样便能保证方法了。
冒泡排序与选择排序异曲同工,只是我们将想要的数据像泡泡上浮一样让它到我们希望他去得位置,代码如下:
public static void bubbleDortArr(int[] arr){
    for(int i = arr.length - 1;i > 0;i--){
        for(int j = 0;j <i;j++){
            if(arr[j] < arr[j+1]){
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}
冒泡排序与选择排序异曲同工。
外层循环同样是我们当前想要操作的索引,而内层循环便是比较了,将想要的数据随着索引一次向后移动,因为我们比较的是arr[j]arr[j+1]的数值,所以让 j+1 = i就好了,即j<i就可以了。
数组的排序方法还有很多,这里就不多加赘述了。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马