zoukankan      html  css  js  c++  java
  • 数组的四种排序(冒泡排序,选择排序,插入排序,快速排序)

    package com.yc.day0807;
    
    import java.util.Arrays;
    
    /**
     * @program: javaSE
     * 描述:
     * 冒泡排序 从小到大
     * @author: yc
     * @create: 2020-08-07 14:09
     **/
    public class Demo {
        public static void main(String[] args) {
            int[] arr = {1,35,73,12,56,89,3};
            System.out.println("冒泡排序:"+ Arrays.toString(Mp(arr)));
            System.out.println("选择排序:"+ Arrays.toString(Xz(arr)));
            System.out.println("插入排序:"+ Arrays.toString(Cl(arr)));
            System.out.println("快速排序:"+Arrays.toString(Ks(arr,0,arr.length-1)));
        }
        public static int[] Mp(int[] arr){ //冒泡
            int tmp = 0;
            for(int i=0;i<arr.length-1;i++){
                for(int j=0;j<arr.length-i-1;j++){
                    if(arr[j]>arr[j+1]){
                        tmp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = tmp;
                    }
                }
            }
            return arr;
        }
        public static int[] Xz(int[] arr){ //选择
            int tmp = 0;
            for(int i=0;i<arr.length-1;i++){
                for(int j=i+1;j<arr.length;j++){
                    if(arr[i]>arr[j]){
                        tmp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = tmp;
                    }
                }
            }
            return arr;
        }
        public static int[] Cl(int[] arr){ //插入
            int j=0;
            for(int i=1;i<arr.length;i++){
                int tmp = arr[i];
                for(j=i-1;j>=0;j--){
                    if(tmp<arr[j]){
                        arr[j+1] = arr[j];
                        arr[j] = tmp;
                    }
                }
            }
            return arr;
        }
        public static int[] Ks(int[] arr,int l,int r){//快速
            if(l<r){
                int k = arr[l]; //基准值
                int i = l;
                int j = r;
                while(i<j){
                    while(i<j && arr[j]>k){
                        j--;
                    }
                    if(i<j){
                        arr[i] = arr[j];
                        i++;
                    }
                    while(l<r && arr[l]<k){
                        l++;
                    }
                    if(i<j){
                        arr[j] = arr[i];
                        j--;
                    }
                }
                arr[i] = k;
                Ks(arr,l,i-1);
                Ks(arr,i+1,r);
            }
            return arr;
        }
    }
  • 相关阅读:
    touchMove VS touchCancel
    svg viewbox 作用
    reactjs reactLink
    放开linux下的端口
    运算符重载函数作为类成员函数和友元函数 (转)
    MBean和MXBean 区别
    transfer-encoding
    CSRF
    vue知识拓展
    居中
  • 原文地址:https://www.cnblogs.com/yclss123/p/13457707.html
Copyright © 2011-2022 走看看