歸併排序分析

2021-08-26 17:48:48 字數 839 閱讀 7489

歸併排序(merge-sort)是利用歸併的思想實現的排序方法,該演算法採用經典的分治(divide-and-conquer)策略(分治法將問題(divide)成一些小的問題然後遞迴求解,而治(conquer)的階段則將分的階段得到的各答案"修補"在一起,即分而治之)。

網上一張圖

可以看到這種結構很像一棵完全二叉樹,本文的歸併排序我們採用遞迴去實現(也可採用迭代的方式去實現)。階段可以理解為

可以看到這種結構很像一棵完全二叉樹,本文的歸併排序我們採用遞迴去實現(也可採用迭代的方式去實現)。階段可以理解為就是遞迴拆分子序列的過程,遞迴深度為log2n。

總的平均時間複雜度為o(nlogn)。而且,歸併排序的最好,最壞,平均時間複雜度均為o(nlogn)。而且歸併排序是乙個穩定的排序

**

public class mergesort ;

static int b=new int[100];

public static void show(int a,int b){

if(a輸出結果

4 8

5 7

4 5 7 8

1 3

2 6

1 2 3 6

1 2 3 4 5 6 7 8 12

3456

78

歸併排序及其分析

歸併排序演算法實現 private static void mergesort anytype a,anytype tmparray,int left,int right if leftint center left right 2 mergesort a,tmparray,left,center ...

歸併排序演算法分析

利用分治的思想,每一次把原陣列分為兩份,再進行對子陣列進行排序,最後對排好序的陣列進行合併,形成乙個新的有序序列。求中點 l到mid之間變為有序的 mergesort arr,l,mid mid 1到r之間變成有序的 mergesort arr,mid 1,r merge arr,l,mid,r p...

排序演算法 歸併排序流程分析

歸併排序是建立在歸併操作上的一種有效的排序演算法。該演算法是採用分治法 的乙個非常典型的應用。將已有序的子串行合併,得到完全有序的序列 即先使 每個子串行有序,再使子串行段間有序。若將兩個有序表合併成乙個有序表,稱為 2 路歸併,與之對應的還有多路歸 並。對於給定的一組資料,利用遞迴與分治技術將資料...