排序 歸併排序

2021-09-19 12:48:33 字數 1193 閱讀 1105

歸併排序(merge-sort)是建立在歸併操作上的一種有效的排序演算法,該演算法是採用分治法(divide and conquer)的乙個非常典型的應用。將已有序的子串行合併,得到完全有序的序列;即先使每個子串行有序,再使子串行段間有序。若將兩個有序表合併成乙個有序表,稱為二路歸併。

// an highlighted block

public

class

mergesorttest

int west = l;

//左邊的指標

int east = mid +1;

//右邊的指標

for(

int k = l; k <= r; k++

)else

if(east > r)

else

if(aux[west - l]

< aux[east - l]

)else}}

/** * 分割

** @param arr

* @param l

* @param r

*/private

static

void

_mergesort

(int

arr,

int l,

int r)

public

static

void

sort

(int

arr,

int n)

public

static

void

main

(string[

] args)

;sort

(arr, arr.length)

;int i;

string separator =

" <= "

;for

(i =

0; i < arr.length -

1; i++

) system.out.

println

(arr[i]);

// 2 <= 3 <= 4 <= 5 <= 15 <= 19 <= 26 <= 27 <= 36 <= 38 <= 44 <= 46 <= 47 <= 48 <= 50

}}

o(nlogn)

排序 歸併排序

歸併 merge 排序法是將兩個 或兩個以上 有序表合併成乙個新的有序表,即把待排序序列分為若干個子串行,每個子串行是有序的。然後再把有序子串行合併為整體有序序列。歸併 將兩個已經排好序的集合合併到乙個集合眾,並且保證新的集合也是有序的。核心點 只有乙個元素的集合是已經排好序的集合。歸併排序是建立在...

排序 歸併排序

歸併 merge 排序法是將兩個 或兩個以上 有序表合併成乙個新的有序表,即把待排序序列分為若干個子串行,每個子串行是有序的。然後再把有序子串行合併為整體有序序列。該演算法是採用分治法 divide and conquer 的乙個非常典型的應用。2 路歸併演算法 1.演算法基本思路 設兩個有序的子檔...

排序 歸併排序

利用遞迴的思想,當n 1時,只有乙個元素需要排序,為遞迴臨界條件 否則,遞迴的將前半部分資料和後半部分資料各自歸併排序,得到排序後的兩部分資料,然後再將得到的兩部分合併到一起。mergesort algorithm public void mergesort int data mergesort例程...