美文网首页
常用排序实现

常用排序实现

作者: 最美的谣言 | 来源:发表于2019-07-15 09:43 被阅读0次
    选择排序(不稳定)
    //选择排序(不稳定)
    public static void selectionSort(int[] array){
        for(int i=0; i<array.length-1; i++){
            int minIndex = i;
            for(int j=i+1; j<array.length; j++){
                minIndex = array[minIndex] < array[j] ? minIndex: j;
            }
            int temp = array[i];
            array[i] = array[minIndex];
            array[minIndex] = temp;
        }
    }
    
    冒泡排序(稳定)
    //冒泡排序(稳定)
    public void bubbleSort(int[] a){
        int temp = 0;
        for(int i=a.length-1; i>0; --i){
            for(int j=0; j<i; ++j){
                if(a[j+1] < a[j]){
                    temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
    }
    
    快速排序(不稳定)
    //快速排序(不稳定)
    public void quickSort(int arr[],int sIndex,int eIndex){
            if (sIndex < eIndex) {
                int p = arr[sIndex] , i = sIndex , k = eIndex;
                while (i < k) {
                    while(i < k && arr[k] >= p)  k--;// 从右向左找
                    if (i < k ) arr[i++] = arr[k];
    
                    while(i < k && arr[i] < p)  i++;// 从左向右找
                    if (i < k ) arr[k--] = arr[i];
                }
                arr[i] = p;
                quickSort(arr, sIndex, i - 1); // 递归
                quickSort(arr, i + 1, eIndex);
            }
    }
    

    相关文章

      网友评论

          本文标题:常用排序实现

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