美文网首页
重捡Java(二)数组的两种常用排序

重捡Java(二)数组的两种常用排序

作者: 我很惊讶 | 来源:发表于2020-05-01 15:43 被阅读0次

选择排序

思路:
把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来
比较完后,第一位就是最小的
然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来
比较完后,第二位就是第二小的

实现:

package j2ee;

public class HelloWorld {
    public static void main(String[] args) {
        int a [] = new int[]{18,62,68,82,65,9};
        //排序前,先把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");
        //选择法排序
        for (int j = 0; j < a.length-1; j++) {
            for (int i = j+1; i < a.length; i++) {
                if(a[i]<a[j]){ //交换
                    int temp = a[j];
                    a[j] = a[i];
                    a[i] = temp;
                }
            }
        }
         
        //把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");       
    }
}

冒泡排序

思路:
第一步:从第一位开始,把相邻两位进行比较
如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的
第二步: 再来一次,只不过不用比较最后一位

实现:

package j2ee;

public class HelloWorld {
    public static void main(String[] args) {
        int a [] = new int[]{18,62,68,82,65,9};
        //排序前,先把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");
        //冒泡法排序

        for (int j = 0; j < a.length; j++) {
            for (int i = 0; i < a.length-j-1; i++) {
                if(a[i]>a[i+1]){  
                    int temp = a[i];
                    a[i] = a[i+1];
                    a[i+1] = temp;
                }
            }
        }
          
        //把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");       
    }
}

备注
这两种排序是比较符合直观思路,也比较好记和常用的两种方法,但实际上也可以用java自带的Arrays.sort(arr)来进行升序操作,比较尴尬的是java并没有自带降序方法,所以降序的时候可以先搞成正序然后,反向插入新数组,或者转成集合,用集合的方法处理。或者自己封装两个新方法,那样的话最好用更好的排序算法,比如调优后的快速排序算法。
https://blog.csdn.net/qq_38289815/article/details/82718428
插个眼,有空再细看,调优的主要目的是为了在处理大数的时候能降低时间复杂度和空间复杂度

相关文章

  • 重捡Java(二)数组的两种常用排序

    选择排序 思路:把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来比较完后,第一位就是最小的然后再...

  • Java实现各种常用的排序算法

    Java实现各种常用的排序算法,包括:冒泡排序、插入排序、二分排序、选择排序、希尔排序、堆排序、快速排序(两种写法...

  • PHP 常用自定义函数

    获取分页信息 二维数组去重 二维数组合并重复项 二维数组排序 二维数组字母排序

  • 重捡Java(三)数组

    python在处理数组字典这一类的数据的时候,有两个很强大的功能——“切片和构造器”但是在java中则更麻烦一些。...

  • JavaSE 数组排序

    Java数组排序是数组操作常用操作之一,通过排序将数组中原来顺序按照升序(从小到大)或降序(从大到小)重新组织。数...

  • 手写常用算法代码1 - 去重

    去重算法模板 : 传入的数组长度>0,返回值为去重后的数组长度。两种情况: 若数组已经排序过,则去重相同元素; 若...

  • 数组 选择排序 冒泡

    数组的排序 像查找一样,排序也是计算机中常用的操作。这里介绍两种方法。 选择排序 假设要按升序排列一个数组。选择排...

  • Java语言——数组排序算法

    数组有很多常用的算法,包括冒泡排序、直接选择排序和反转排序。 一、冒泡排序 冒泡排序是最常用的数组排序算法之一,它...

  • 数据结构必备代码

    目录: 排序算法 树的遍历 查找 链表插入 数组与列表转化 二维数组排序 java中输入 集合遍历 一、基本排序1...

  • 收集整理js常用工具函数

    (更新于2018.12.15 )持续更新... 收集整理的一些前端开发常用的工具函数 数组去重方法 数组快速排序 ...

网友评论

      本文标题:重捡Java(二)数组的两种常用排序

      本文链接:https://www.haomeiwen.com/subject/fghqghtx.html