【JAVA】简述数组排序

目录

Arrays工具类的排序方法

冒泡排序(Bubble Sort)

选择排序(Select Sort)

插入排序(Insert Sort)

希尔排序(Shell Sort)

快速排序(Quick Sort)

归并排序(Merge Sort)

堆排序(Heap Sort)

计数排序(Count Sort)

桶排序(Bucket Sort)

基数排序(Raix Sort)


Arrays工具类的排序方法

//升序排序
Arrays.sort(arr);

//部分升序排序
Arrays.sort(arr,num1,num2)

//降序排序

/**
 * 利用Arrays里的sort()方法排序
 * 重写Comparator里的compare方法,实现降序
 */

    public static void ReverseSort(){
        Integer[] array = {12,3,4,356,567,32,5,56723,345};
        Arrays.sort(array,new Comparator<Integer>(){
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        System.out.println(Arrays.toString(array));
    }

冒泡排序(Bubble Sort)

将相邻的元素进行比较,如果前面的元素比后面的元素大,就把这两个元素交换位置(第一轮比较),将上述操作循环(n-1)轮(n是数组的长度)

    /**
     * 冒泡排序
     */
    public static void BubbleSort() {
        int[] array = {12,3,4,356,567,32,5,56723,345};
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (array[j + 1] < array[j]) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(array));
    }

选择排序(Select Sort)

选出数组中最大或最小的元素,把这个元素与第一个元素互换,再找出剩余元素中最大或最小的元素,把这个元素与第二个元素互换,如此循环。

    /**
     * 选择排序
     */
    public static void SelectSort() {
        int[] array = {12,3,4,356,567,32,5,56723,345};
        for (int i = 0; i < array.length - 1; i++) {
            int index = i;
            for (int j = i + 1; j < array.length; j++) {
                if (array[j] < array[index]) {
                    index = j;
                }
            }
            int temp = array[i];
            array[i] = array[index];
            array[index] = temp;
        }
        System.out.println(Arrays.toString(array));
    }

插入排序(Insert Sort)

类似于扑克牌,将手里乱序的扑克牌按照从大到小或者从小到大排序。

    /**
     * 插入排序
     */
    public static void InsertSort() {
        int[] array = {12,3,4,356,567,32,5,56723,345};
        for (int i = 0; i < array.length; i++) {
            //定义一个待插入的数
            int insertValue = array[i];
            //定义待插入数的前一个数的下标
            int insertIndex = i - 1;
            while (insertIndex>=0&&insertValue<array[insertIndex]){
                array[insertIndex+1]=array[insertIndex];
                insertIndex--;
            }
            array[insertIndex+1]=insertValue;
        }
        System.out.println(Arrays.toString(array));
    }

希尔排序(Shell Sort)

属于插入排序的升级版,首先把数据集合分割成若干个小组,每一个小组分别进行插入排序。(待更新)


快速排序(Quick Sort)

(待更新)


归并排序(Merge Sort)

(待更新)


堆排序(Heap Sort)

(待更新)


计数排序(Count Sort)

(待更新)


桶排序(Bucket Sort)

(待更新)


基数排序(Raix Sort)

(待更新)


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值