设为首页 加入收藏

TOP

Java实现基本排序算法(三)
2017-05-04 10:24:19 】 浏览:778
Tags:Java 实现 基本 排序 算法
on(int[] arr,int low,int high){
        int pivot=arr[low];
        while(low<high){
            while((low<high)&&arr[high]>=pivot)
                high--;
            arr[low]=arr[high];//将比基准小的移动到左侧
            while((low<high)&&arr[low]<=pivot)
                low++;
            arr[high]=arr[low];//将比基准大的移动到右端
        }
        arr[low]=pivot;
        return low;
       
    }
    /**
    *
    * @Description: 简单选择排序 (这里用一句话描述这个类的作用)
    * @author 陈杰
    * @date 2016年10月8日 下午8:16:21
    * @param arr
    */
    public void selectSort(int arr[]){
        for(int i=0;i<arr.length-1;i++){
            int min=i;//记录本次待排序最小元素的位置
            for(int j=i+1;j<arr.length;j++){
                if(arr[min]>arr[j])
                    min=j;
            }
            //将未排序列表中的最小元素和待排序元素的位置互换
            if(min!=i){
                int temp=arr[i];
                arr[i]=arr[min];
                arr[min]=temp;
            }
               
        }
        //打印排序后结果
        for (int value : arr) {
            System.out.print(value + "  ");
        }
    }
    /**
    *
    * @Description: 堆排序算法 (这里用一句话描述这个类的作用)
    * @author 陈杰
    * @date 2016年10月9日 下午5:40:56
    * @param arr
    */
    public void heapSort(int arr[]){
        if(arr==null||arr.length<=0)
            return;
        bulidHeap(arr);
        for(int i=arr.length-1;i>=0;i--){
            //交换堆顶元素和堆低元素的值,以打破堆让其重新调整,从而每次输出最大值(堆顶的值),直至堆为空
            int temp=arr[0];//堆顶元素
            arr[0]=arr[i];
            arr[i]=temp;
            adjustHeap(arr, 0, i);
        }
       
        //打印排序后结果
        for (int value : arr) {
            System.out.print(value + "  ");
        }
    }
    /**
    *
    * @Description:构建初始堆(以大根堆为例)
    * @author 陈杰
    * @date 2016年10月9日 下午5:43:02
    * @param arr
    */
    private void  bulidHeap(int arr[]){
  &nb
首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spring集合类型的setter注入的一.. 下一篇未来的C#之只读引用与结构体

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目