首页 > 编程语言 > 详细

java实现所有排序算法

时间:2019-07-03 19:20:40      阅读:108      评论:0      收藏:0      [点我收藏+]
package test;

public class Sort {
    public static void BubbleSort(int[] arr) {
        //TODO 冒泡排序
        for(int i=arr.length-1;i>0;i--) {
            for(int j=0;j<i;j++) {
                if(arr[j]<arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;                    
                }
            }
        }
    }
    public static void InsertSort(int[] arr) {
        //TODO 插入排序
        for(int i=1;i<arr.length;i++) {
            int temp = arr[i];
            int index = i-1;
            while(index>=0 && arr[index]>temp) {
                arr[index+1] = arr[index];
                index--;
            }
            arr[index+1] = temp;
        }
    }
    public static void ShellSort(int[] arr) {
        //TODO 希尔排序
        for(int r = arr.length/2;r>=1;r=r/2) {
            for(int i=r;i<arr.length;i++) {
                int j=i-r;
                int temp = arr[i];
                while(j>=0 && arr[j]>temp) {
                    arr[j+r] = arr[j];
                    j-=r;
                }
                arr[j+r] = temp;
            }
        }
    }
    public static void Heapsort(int[] arr) {
        for(int i=arr.length/2-1;i>=0;i--) {
            Perdown(arr,i,arr.length);
        }
        for(int j=arr.length-1;j>=0;j--) {
            int temp = arr[j];
            arr[j] = arr[0];
            arr[0] = temp;
            Perdown(arr,0,j);
        }
    }
    public static void Perdown(int[] arr,int i,int length) {
        int child = 0;
        int j;
        int temp = arr[i];
        for(j=i;j*2+2<=length-1;j=child) {
            child = j*2+1;
            if(child!=length-1 && arr[child]<arr[child+1]) {
                child++;
            }
            if(arr[child]>temp) {
                arr[j] = arr[child];
            }else {
                break;
            }
        }
        arr[j] = temp;
    }
    public static void main(String[] args) {        
        int[] test = {2,5,1,0,6,7,3};
        Heapsort(test);
        for(int i=0;i<test.length;i++) {
            System.out.print(test[i]);
        }
    }    
}

 

java实现所有排序算法

原文:https://www.cnblogs.com/zheng123/p/11127823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!