日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

归并排序 java_归并排序(Java实现)

發布時間:2023/12/2 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 归并排序 java_归并排序(Java实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

package primary_01;/** 歸并排序* 1.算法實現* 2.驗證算法的正確性* 3.分析算法的復雜度*/public class Merge_sort {public static void main(String[] args) {int arr []= {2,1,6,5,9,8,2020,199};sort(arr, 0, arr.length-1);for (int i : arr) {System.out.print(i+" ");}}/** 歸并排序* 1.劃分的過程* mid * 2.歸并的過程* merge* 3.遞歸的過程* 遞歸的實質*/private static void sort(int[] arr,int l,int h) {if(h <= l || arr.length<2) {return;}int mid=l+((h-l)>>1);// int mid=l+(h-l)/2;sort(arr,l,mid);sort(arr,mid+1,h);merge(arr,l,mid,h);}private static void merge(int[] arr, int l, int mid, int h) {int help [] =new int [h-l+1];int p1=l;int p2=mid+1;int index;for(index=0;p1<=mid && p2<=h ; index++) {help[index] = arr[p1] < arr[p2] ? arr[p1++] : arr[p2++];}while(p2 <= h) {help[index++]=arr[p2++];}while(p1 <= mid) {help[index++]=arr[p1++];}for(int i=0;i<help.length;i++) {arr[l++]=help[i];}}} /*** 算法復雜度分析* 時間復雜度:O(n*logn)* master公式運用* master公式的使用T(N) = a*T(N/b) + O(N^d)1) log(b,a) > d -> 復雜度為O(N^log(b,a)) 2) log(b,a) = d -> 復雜度為O(N^d * logN) 3) log(b,a) < d -> 復雜度為O(N^d)對于歸并排序:T(N)=2*T(N/2)+O(N) 復雜度為O(N*logN)*/

總結

以上是生活随笔為你收集整理的归并排序 java_归并排序(Java实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。