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

排序算法:下(Java)

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

排序算法:下(Java)

计数排序

代码:

public class 计数排序 {
    public static void main(String[] args) {
        int[] a = {32, 567, 42, 321, 1, 2, 3, 5, 42, 62, 4, 2, 312, 4, 1, 5, 213, 5, 3, 5, 42, 321, 423, 21};
        countSort(a);
        for (int i : a) {
            System.out.print(i + "   ");
        }
    }

    private static void countSort(int[] a) {
        int max=a[0];
        for(int i=0;imax)max=a[i];
        }
        int[] b=new int[max+1];
        for(int i=0;i 
堆排序 

代码:

public class 堆排序 {
    public static void main(String[] args) {
        int[] a = {32, 567, 42, 321, 1, 2, 3, 5, 42, 62, 4, 2, 312, 4, 1, 5, 213, 5, 3, 5, 42, 321, 423, 21};
        heapSort(a,0,a.length);
        for (int i : a) {
            System.out.print(i + "   ");
        }
    }

    private static void heapSort(int[] a,int k,int len) {
        for(int i=len/2-1;i>=0;i--){
            adjustHeap(a,i,len);
        }
        for(int j=len-1;j>=0;j--){
            swap(a,0,j);
            adjustHeap(a,0,j-1);
        }
    }

    private static void adjustHeap(int[] a, int i, int len) {
        int temp=a[i];
        for(int k=i*2+1;ka[k]){
                k++;
            }
            if(a[k]>temp){
                a[i]=a[k];
                i=k;
            }else{
                break;
            }
        }
        a[i]=temp;
    }

    public static void swap(int[] a, int i, int j) {
        int temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }
}
希尔排序

代码:

public class 希尔排序 {
    public static void main(String[] args) {
        int[] a = {32, 567, 42, 321, 1, 2, 3, 5, 42, 62, 4, 2, 312, 4, 1, 5, 213, 5, 3, 5, 42, 321, 423, 21};
        shellSort(a);
        for (int i : a) {
            System.out.print(i + "   ");
        }
    }

    private static void shellSort(int[] a) {
        int len=a.length;
        int d=a.length>>1;
        while(d>0){
            for(int i=d;i=d&&a[j-d]>temp){
                    a[j]=a[j-d];
                    j-=d;
                }
                a[j]=temp;
            }
            d>>=1;
        }
    }
}
拓扑排序

拓扑图:

代码:

import java.util.linkedList;

public class 拓扑排序 {
    static boolean[] b=new boolean[11];
    static int[] a=new int[11];
    public static void main(String[] args) {
        linkedList[] list=new linkedList[11];
        addEdge(list,0,1);
        addEdge(list,0,2);
        addEdge(list,2,1);
        addEdge(list,2,10);
        addEdge(list,1,7);
        addEdge(list,1,10);
        addEdge(list,1,5);
        addEdge(list,7,4);
        addEdge(list,4,9);
        addEdge(list,9,6);
        addEdge(list,9,8);
        addEdge(list,8,5);
        addEdge(list,5,3);
        addEdge(list,10,3);
        topologicalSort(list);
    }

    private static void addEdge(linkedList[] list, int i, int i1) {
        a[i1]++;
        if(list[i]==null){
            list[i]=new linkedList<>();
            list[i].add(i1);
        }else{
            list[i].add(i1);
        }
    }

    private static void topologicalSort(linkedList[] list) {
        while(true){
            int i=0;
            for(;i
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756610.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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