选择,冒泡,插入,快速排序

四个排序

冒泡排序

import java.util.Arrays;
public class Maopao{
    public static void main(String[] args){
        int[] arr={55,33,44,22,11};
        bubbleSort(arr);
        System.out.println(Arrays.toString(arr))
        
    }
    public static void bubbleSort(int[] arr){
        for(int i=0;i<arr.length;i++){
             for(int j=0;j<arr.length-1;j++){
                 if(arr[j]>arr[j+1]){
                     arr[j]=arr[j]^arr[j+1];
                     arr[j+1]=arr[j]^arr[j+1];
                     arr[j]=arr[j]^arr[j+1];
                 }
             }
        }
           
    }
}

选择排序

import java.util.Arrays;

public class Choose {
    public static void main(String[] args) {
        int[] arr={55,33,44,11,22};
        selectSort(arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void selectSort(int[] arr){
        for (int i = 0; i <arr.length ; i++) {
            int minIndex=i;
            int min=arr[i];
            for (int j = i+1; j <arr.length ; j++) {
                if (arr[j]<arr[minIndex]){
                    minIndex=j;
                }
            }
            arr[i]=arr[minIndex];
            arr[minIndex]=min;

        }

    }

}

插入排序

import java.util.Arrays;

public class Charu {
    public static void main(String[] args) {
        int[] arr={55,33,44,11,22};
        insertSort(arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void insertSort(int[] arr){
        for (int i = 0; i < arr.length ; i++) {
            int current=arr[i];
            int prevIndex=i-1;
            while (prevIndex>=0 && current<arr[prevIndex]){
                arr[prevIndex+1]=arr[prevIndex];
                prevIndex--;
            }
        arr[prevIndex+1]=current;
        }

    }
}

快速排序

import java.util.Arrays;

public class Quickly {
    public static void main(String[] args) {
        int[] arr={55,33,44,11,22};
        quicklySort(arr,0,arr.length-1);
        System.out.println(Arrays.toString(arr));
    }
    public static void quicklySort(int[] arr,int left,int right){
        if (left>=right){
            return;
        }
        int jizhun=arr[left];
        int i=left;
        int j=right;
        while (i!=j){
            while (j>i && arr[j]>jizhun){//从右往左找比基准值小的数
                j--;
            }
            while ((j>i && arr[i]<jizhun)){//从左往右找比基准值大的数
                i++;
            }
            if (i<j){
                arr[i]=arr[i]^arr[j];
                arr[j]=arr[i]^arr[j];
                arr[i]=arr[i]^arr[j];
            }
        }
        if (arr[i]<jizhun){
            arr[left]=arr[i];
            arr[i]=jizhun;
        }
        quicklySort(arr,0,i-1);
        quicklySort(arr,i+1,right);
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值