美文网首页
算法之快速排序及冒泡、插入排序

算法之快速排序及冒泡、插入排序

作者: Time_x | 来源:发表于2019-06-18 23:58 被阅读0次

1.快速排序的简单使用代码如下:

private static void quickSort(int[] arrs) {

        if(arrs.length>0){

            //如果数组不为空

            quickSortRecurSion(arrs,0,arrs.length-1);

        }

        System.out.println(Arrays.toString(arrs));

    }

    private static void quickSortRecurSion(int[] arrs, int low, int high) {

        if(low<high){

            //将list数组一分为二

            int  middle=getMiddle(arrs,low,high);

            //对低字表进行排序

            quickSortRecurSion(arrs,low,middle-1);

            //对高字表进行排序

            quickSortRecurSion(arrs,middle+1,high);

        }

    }

    private static int getMiddle(int[] arrs, int low, int high) {

        //数组第一个作为中轴

        int temp=arrs[low];

        while (low<high){

            while (low<high&&arrs[high]>=temp){

                high--;

            }

            //比较轴小的记录移到低端

            arrs[low]=arrs[high];

            while (low<high&&arrs[low]<temp){

                low++;

            }

            //比中轴大的记录移到高端

            arrs[high]=arrs[low];

            //返回中轴的位置

        }

        //中轴记录到尾

        arrs[low]=temp;

        return low;

    }

2.冒泡使用代码如下:

private static void maoPao(int[] arrs) {

        for (int i = 0; i < arrs.length-1; i++) {

            for (int j = 0; j <  arrs.length-1-i; j++) {

                if(arrs[j]>arrs[j+1]){

                    int temp=arrs[j];

                    arrs[j]=arrs[j+1];

                    arrs[j+1]=temp;

                }

            }

        }

        System.out.println(Arrays.toString(arrs));

    }

3.插入排序代码如下:

private static void insertSort(int[] arrs) {

        for (int i =0 ; i < arrs.length; i++) {

            //待插入数据

            int temp=arrs[i];

            int j=0;

            for (j=i-1;j>=0;j--){

                //判断是否大于temp 大于则后移一步i

                if(arrs[j]>temp){

                    arrs[j+1]=arrs[j];

                }else{

                    break;

                }

            }

            arrs[j+1]=temp;

            System.out.println(i+":"+ Arrays.toString(arrs));

        }

    }

相关文章

  • 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

    图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

  • 排序算法

    排序算法 排序是最基本的算法之一,常见的排序算法有插入排序、希尔排序、选择排序、冒泡排序、堆排序、归并排序及快速排...

  • JS实现排序算法

    原文:常见排序算法之JavaScript实现 - 知乎 目录 冒泡排序 选择排序 插入排序 合并排序 快速排序 1...

  • 排序题

    公共函数 选择排序 冒泡排序 插入排序 快速排序 归并排序——迭代算法

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • 排序算法

    排序算法 冒泡排序 选择排序 插入排序 快速排序(最常见) 希尔排序 归并排序 源码:Sorting 冒泡排序 冒...

  • 前端基础整理 | 算法基础

    排序算法 冒泡排序 选择排序 插入排序 希尔排序 归并排序 堆排序 快速排序

  • 基础排序算法

    快速排序 二分查找 冒泡排序 归并算法 选择排序 插入排序 Shell排序

  • python 冒泡排序和选择排序算法

    插入排序算法 冒泡排序算法

  • 常用的排序算法

    常用的排序算法 常用的排序算法插入排序折半插入排序shell 排序冒泡排序选择排序快速排序基数排序归并排序堆排序K...

网友评论

      本文标题:算法之快速排序及冒泡、插入排序

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