1. 程式人生 > 實用技巧 >陣列的四種排序(氣泡排序,選擇排序,插入排序,快速排序)

陣列的四種排序(氣泡排序,選擇排序,插入排序,快速排序)

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; } }