美文网首页
排序算法总结

排序算法总结

作者: xbinng | 来源:发表于2017-09-23 16:30 被阅读0次
public static void quickSort(int[] arr,int begin,int end){
        if(begin>=end) return; //不可缺少???   递归的结束条件
        int idx=partion(arr,begin,end);
        quickSort(arr,begin,idx-1);
        quickSort(arr,idx+1,end);
    }
    private static int partion(int[] arr,int lo,int hi){
        int key=arr[lo];
        while(lo<hi){
            while(arr[hi]>=key&&lo<hi){
                hi--;
            }
            arr[lo]=arr[hi];
            while(arr[lo]<=key&&lo<hi){
                lo++;
            }
            arr[hi]=arr[lo];
        }
        arr[hi]=key;
        return hi;
    }
    

public static void InsertSort(int[] arr){
        for(int j=1;j<arr.length;j++){
            int i=j-1;
            int key=arr[j];
            while(i>0&&arr[i]>key){
                arr[i+1]=arr[i];
                i--;
            }
            arr[i+1]=key;
            
        }
    }
    
    public static void MergeSort(int[] arr,int low,int high){
        int mid=low+(high-low)/2;
        MergeSort(arr,low,mid);
        MergeSort(arr,mid+1,high);
        Merge(arr,low,mid,high);
    }
    private static void Merge(int[] arr,int low,int mid,int high){
        int[] temp=new int[high-low+1];
        int i=low;
        int j=mid+1;
        int k=0;
        while(i<mid&&j<high){
            if(arr[i]<arr[j]){
                temp[k++]=arr[i];
            }else{
                temp[k++]=arr[j];
            }           
        }
        while(i<mid){
            temp[k++]=arr[i++];
        }
        while(j<high){
            temp[k++]=arr[j++];
        }
        for(int m=0;m<temp.length;m++){
            arr[m]=temp[m];
        }
    }

相关文章

  • iOS算法总结-堆排序

    iOS算法总结-堆排序 iOS算法总结-堆排序

  • iOS算法总结-冒泡排序

    iOS算法总结-冒泡排序 iOS算法总结-冒泡排序

  • 算法学习(1)-排序算法

    八大排序算法九大排序算法再总结[经典排序算法][集锦][直观学习排序算法] 视觉直观感受若干常用排序算法 快速排序...

  • 面试常问的排序算法

    排序算法总结 排序是算法问题中的经典问题。为什么要总结排序算法呢?你懂的 : (假设所有的排序都是要求最终结果为:...

  • 浅谈排序算法

    排序算法有很多种,今天先谈谈一些简单的排序算法。包括桶排序、冒泡排序和快速排序算法。后期总结各种排序算法。 桶排序...

  • 排序算法

    一、排序算法总结 排序算法题目 排序算法快速排序堆排序归并排序 应用最小K个数(TopK问题)215.数组中的第K...

  • 一文搞定十大经典排序算法(Java实现)

    本文总结十大经典排序算法及变形,并提供Java实现。参考文章:十大经典排序算法总结(Java语言实现)快速排序算法...

  • Swift的十大经典排序算法总结

    Swift的十大经典排序算法总结 排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排...

  • 算法-排序算法总结

    排序类型总结 1 排序算法基础实现 2 排序算法应用 2.1 基础排序 2.2 计数排序应用 2.3 快排应用 2...

  • 排序算法最强总结及其代码实现(Python/Java)

    前言 本文总结了常用的全部排序算法,内容包括: 排序算法的定义和思路 排序算法的代码实现:Python和Java,...

网友评论

      本文标题:排序算法总结

      本文链接:https://www.haomeiwen.com/subject/rlbcextx.html