91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中怎么實現快速排序+歸并排序

發布時間:2021-11-16 13:50:53 來源:億速云 閱讀:132 作者:iii 欄目:大數據

本篇內容主要講解“Java中怎么實現快速排序+歸并排序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java中怎么實現快速排序+歸并排序”吧!

package com.cjw.sort;

import lombok.extern.slf4j.Slf4j;

/**
 * 簡單快速排序
 * @author wucj
 * @date 2019-06-30 22:15
 **/
@Slf4j
public class QuickSortDemo {


    /**
     * 快速排序
     * @param arr 數組
     * @param start 開始
     * @param end 結束
     */
    public void quickSort(int[] arr,int start,int end){
        if(start<end){
            int i=start;
            int value = arr[start];
            for(int j=start+1;j<=end;j++){
                if(arr[j]<value){
                    int temp = arr[j];
                    arr[j] = arr[i+1];
                    arr[i+1] = temp;
                    i++;
                }
            }
            arr[start] = arr[i];
            arr[i] = value;
            quickSort(arr,start,i-1);
            quickSort(arr,i+1,end);
        }
    }

}

package com.cjw.sort;

/**
 * 簡單歸并排序
 * @author wucj
 * @date 2019-06-30 23:06
 **/
public class MergeSortDemo {

    public void sort(int[] arr,int low,int high){
        int mid = (high+low)/2;
        if(low<high){
            sort(arr,low,mid);
            sort(arr,mid+1,high);
            merge(arr,low,mid,high);
        }
    }

    private void merge(int[] arr,int low,int mid,int high){
        int[] tempArr = 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]){
                tempArr[k++]=arr[i++];
            }else{
                tempArr[k++] = arr[j++];
            }
        }
        while (i<=mid){
            tempArr[k++] = arr[i++];
        }
        while (j<=high){
            tempArr[k++]=arr[j++];
        }
        for(int n=0;n<tempArr.length;n++){
            arr[n+low] = tempArr[n];
        }
    }



}

單元測試:
package com.cjw.concurrent;

import com.cjw.sort.MergeSortDemo;
import com.cjw.sort.QuickSortDemo;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

import java.util.Arrays;

/**
 * @author wucj
 * @date 2019-06-30 22:24
 **/
@Slf4j
public class SortTest {

    private int[] arr1 = {11,213,134,44,77,78,23,43};

    @Test
    public void quickSortTest(){
        int[] arr11 = Arrays.copyOf(arr1,arr1.length);
        QuickSortDemo quickSortDemo = new QuickSortDemo();
        quickSortDemo.quickSort(arr11,0,arr11.length-1);
        soutArr(arr1);
        soutArr(arr11);
    }

    @Test
    public void mergeSortTest(){
        int[] arr11 = Arrays.copyOf(arr1,arr1.length);
        MergeSortDemo mergeSortDemo = new MergeSortDemo();
        mergeSortDemo.sort(arr11,0,arr11.length-1);
        soutArr(arr1);
        soutArr(arr11);
    }

    private void soutArr(int[] tempArr){
        StringBuffer s = new StringBuffer();
        for (int i=0;i<tempArr.length;i++) {
            s.append(tempArr[i]);
            if(i<(tempArr.length-1)){
                s.append("->");
            }
        }
        log.info("數組排序結果:{}",s);
    }

}

到此,相信大家對“Java中怎么實現快速排序+歸并排序”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德惠市| 余干县| 通榆县| 七台河市| 乌苏市| 三门峡市| 临清市| 蓬溪县| 屯门区| 中超| 岳阳市| 繁峙县| 麻江县| 大洼县| 伊通| 阳朔县| 岫岩| 呼玛县| 康平县| 龙胜| 隆尧县| 湛江市| 那曲县| 介休市| 兴安盟| 鸡东县| 上虞市| 崇仁县| 湖州市| 九龙坡区| 嘉鱼县| 南通市| 金山区| 岢岚县| 连南| 普格县| 清水河县| 西青区| 崇明县| 菏泽市| 新津县|