算法 - 排序 - 二路归并排序 (Two-way Merge Sort)
返回上级:算法 - 查找与排序 (Searching and Sorting)
本文将用C++实现插入二路归并排序算法。
在查看本文之前,需要一些程序语言的基础。
所有排序方法中,统一使用如下库与结构:
// Author: https://blog.youkuaiyun.com/DarkRabbit
// Sorted Dependency
#pragma once
#include <algorithm>
#include <vector>
#include <stack>
template<typename T>
struct MyItem
{
int key;
T data;
MyItem(){
key = -1; }
MyItem(const int& k) : key(k){
}
MyItem(const int& k, const T& d) : key(k), data(d){
}
};
数据表统一使用了std::vector<MyItem<T>>
,如果你使用静态数组MyItem<T>[]
或指针数组MyItem<T>*
,那么还要传入元素数量size
。
示例所用数据:
-
元素数量为
size = 15
; -
关键字为
key = { 123, 122, 565, 22, 3, 64, 73, 44, 287, 6, 9, 83, 25, 42, 13 }
。