栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java三种常见的排序算法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java三种常见的排序算法

排序算法

文章目录
  • 排序算法
  • 一、冒泡排序
  • 二、快速排序
  • 三.选择排序
  • 总结

一、冒泡排序
public class Mp {
    public static void main(String[] args) {
        int[]arr=new int[]{2,8,4,10,6,12,18,25,7,11};
        int[] ints = bubbleSort(arr);
        for (int anInt : ints) {
            System.out.println(anInt);
        }


    }
    public static int[] bubbleSort(int[]arr){
        //如果数组长度为0,那么数组中不存在数字,直接返回空数组
        if(arr.length==0) {
            return arr;
        }
        //数组的下标从0开始
        for (int i = 0; i < arr.length; i++) {
            //嵌套循环
            for (int j = 0; j < arr.length-i-1; j++) {
                if(arr[j]>arr[j+1]){
                    int k=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=k;
                }
            }
        }
        return arr;
    }
}
二、快速排序
public class Kp {
    public static void main(String[] args) {
        List integers = Arrays.asList(9, 5, 4, 8, 10, 7, 35, 6, 25, 14);
        faster(integers,0,integers.size()-1);
        System.out.println(integers);

    }

    private static void faster(Listintegers,int begin,int end) {
        //第二次排序才能确定9的位置  max=7   min=4  6, 5, 4, 8, 9, 7, 35, 10, 25, 14
        int min=begin;
        int max=end;
        int key=integers.get(begin);

        while (max>min){
            while (max>min&&key<=integers.get(max)){
                max--;
            }
            //交换
            if(key>=integers.get(max)){
                int temp=integers.get(max);
                integers.set(max,key);
                integers.set(min,temp);
            }
            //第一次上面排序完之后的结果  6, 5, 4, 8, 10, 7, 35, 9, 25, 14
            while(max>min&&key>=integers.get(min)){
                min++;
            }

            if(key
                int temp=integers.get(min);
                integers.set(max,temp);
                integers.set(min,key);
            }
            //上面第一次排序完后的结果  6, 5, 4, 8, 9, 7, 35, 10, 25, 14
        }
        //以9为分节点然后开始递归排序
        if(min-1>begin)faster(integers,begin,min-1);
        if(max+1 
三.选择排序 
public class Xp {
    public static void main(String[] args) {

        int[]arr=new int[]{2,8,4,10,6,12,18,25,7,11};
        int[] ints = selectSort(arr);
        for (int anInt : ints) {
            System.out.println(anInt);
        }

    }
    public static int[] selectSort(int[]arr){
        for (int i = 0; i < arr.length; i++) {
            int index=i;
            for (int j = i+1; j < arr.length; j++) {
                if(arr[index]>arr[j])index=j;
            }
            if(index !=i){
                int k=arr[i];
                arr[i]=arr[index];
                arr[index]=k;
            }
        }
        return arr;
    }
}
总结

今日诗句:
成大事不在于力量的大小,而在于能坚持多久

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/860267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号