数组的四种排序(冒泡排序,选择排序,插入排序,快速排序)

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;
    }
}
原文地址:https://www.cnblogs.com/yclss123/p/13457707.html