• 4.1_8种常用排序算法1(交换排序:冒泡排序+快速排序)


    【8中排序算法一览】

    【算法1:冒泡排序】

    【冒泡算法实例】

    package com.sort.demo1;
    
    import java.util.Arrays;
    
    /**
     * 冒泡排序
     */
    public class BubbleSort {
    
        public static void main(String[] args) {
            int[] arr = new int[]{1,4,5,7,3,9,8,0,2,6};
            System.out.println(Arrays.toString(arr));
            bubbleSort(arr);
            System.out.println(Arrays.toString(arr));
        }
    
        /**
         * 冒泡排序算法
         * 第一个for循环:控制共比较多少轮
         * 第二个for循环:控制每次循环中比较的次数
         * @param arr
         */
        public static void bubbleSort(int[] arr){
            for(int i=0;i<arr.length-1;i++){
                for(int j=0;j<arr.length-1-i;j++){
                    if(arr[j]>arr[j+1]){
                        int temp = arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                    }
                }
            }
        }
    }

    【快速排序算法】

    【实例】

    package com.sort.demo1;
    
    import java.util.Arrays;
    
    /**
     * 快速排序
     */
    public class QuickSort {
        
        public static void main(String[] args) {
            int[] arr = new int[]{1,4,5,7,3,9,8,0,2,6};
            System.out.println(Arrays.toString(arr));
            quickSort(arr,0,arr.length-1);
            System.out.println(Arrays.toString(arr));
        }
    
        /**
         * 快速排序算法
         * @param arr
         * @param start
         * @param end
         */
        public static void quickSort(int[] arr,int start,int end){
            if(start<end){
                //把数组中的第start个数字作为标准数
                int stard = arr[start];
                //记录需要排序的下标
                int low = start;
                int high = end;
                //循环找到比标准数大的数 和 比标准数小的数
                while (low<high){
                    //如果右边的数字比标准数大,右边的下标-1
                    while (low<high && stard<=arr[high]){
                        high--;
                    }
                    //使用右边的数字替换左边的数字
                    arr[low] = arr[high];
                    //如果左边的数字比标准数小,左边的下标+1
                    while (low<high && stard>arr[low]){
                        low++;
                    }
                    arr[high] = arr[low];
                }
                //把标准数赋值给low低所在的位置的元素(这个时候low=high)
                arr[low] = stard;
                //处理所有的小的数字
                quickSort(arr,start,low);
                //处理所有的大的数字
                quickSort(arr,low+1,end);
            }
        }
    }
  • 相关阅读:
    ps4 如何导出切片 单个图片
    测试webservice的时候,如果出现这个错误:"The test form is only available for requests from the local machine"
    js jquery 按钮点击后 60秒之后才能点击 60秒倒计时
    有空研究一下 superwebsocket (底层是 supersocket) 用来实现 web聊天什么的
    Vue学习笔记一:初识Vue
    被爬虫了,嘻嘻嘻
    Mybatis-generator自动生成器
    SpringCloud笔记五:Feign
    SpringCloud笔记四:Ribbon
    SpringCloud笔记三:Eureka服务注册与发现
  • 原文地址:https://www.cnblogs.com/HigginCui/p/10593420.html
Copyright © 2020-2023  润新知