完全是為了完整性收錄進來,個人感覺完全沒有亮點的排序方式
引用
演算法——快速排序
因為要對已經排序好的陣列進行歸併排序,故引用了上面需要使用到的快速排序
#include
#include
#include
// 歸併演算法,把已經排序的陣列,重新歸併到乙個新的陣列中
void
mergesort
(int array1,
int count1,
int array2,
int count2,
int array)
else
if( j == count2 )
else
array[index]
= array1[i]
< array2[j]
? array1[i++
]: array2[j++];
}}// 獲得隨機的數
void
genrandomdata
(int array,
int count )
}// 列印陣列
void
printarray
(int array,
int count )
printf
("\n");
}// 判斷陣列是否排序的
void
issort
(int array,
int count )
}printf
("array is sort !\n");
}int
main
(int argc,
char
* argv)
;int array2[20]
=;int array[30]
=;genrandomdata
( array1,10)
;genrandomdata
( array2,20)
;qsort
( array1,0,
9);qsort
( array2,0,
19);mergesort
( array1,
10, array2,
20, array )
;issort
( array,30)
;return0;
}
歸併演算法 歸併排序
歸併演算法 歸併排序 這周需要用到歸併演算法,於是找了找相關的資料,整理如下 歸併排序 merge sort 是利用 歸併 技術來進行排序。歸併是指將若干個已排序的子檔案合併成乙個有序的檔案。兩路歸併演算法 1 演算法基本思路 設兩個有序的子檔案 相當於輸入堆 放在同一向量中相鄰的位置上 r low...
歸併排序演算法
include stdafx.h include include include 合併兩段已經排好序的列表 void merge int list int mergelist int left int mid int right else if i mid else 將列表list按照seglen分...
歸併排序演算法
這個演算法感覺比插入難理解一些,下面說說我的理解 歸併排序的步驟 1.把長度為n的序列分為兩個長度為n 2的子串行 2.對這兩個子串行分別採用歸併排序 3.將兩個子串行合併成乙個最終的排序序列 通過步驟2可看到 在歸併排序中又用了歸併排序,可見這是乙個遞迴的過程。例如乙個陣列 a 8 下面採用遞迴排...