|
| template<class Iterator > |
| void | merge (Iterator l, Iterator r, const Iterator e, char b[]) |
| | merges 2 sorted adjacent segments into a larger sorted segment More...
|
| |
| template<class Iterator > |
| void | non_recursive_merge_sort (const Iterator first, const Iterator last, const size_t n) |
| | bottom-up merge sort which sorts elements in a non-decreasing order More...
|
| |
| template<class Iterator > |
| void | non_recursive_merge_sort (const Iterator first, const size_t n) |
| | bottom-up merge sort which sorts elements in a non-decreasing order More...
|
| |
| template<class Iterator > |
| void | non_recursive_merge_sort (const Iterator first, const Iterator last) |
| | bottom-up merge sort which sorts elements in a non-decreasing order More...
|
| |
|
int | main (int argc, char **argv) |
| |
Copyright 2020
- Author
- Albirair
A generic implementation of non-recursive merge sort.
template<class Iterator >
| void non_recursive_merge_sort |
( |
const Iterator |
first, |
|
|
const Iterator |
last, |
|
|
const size_t |
n |
|
) |
| |
bottom-up merge sort which sorts elements in a non-decreasing order
sorts elements non-recursively by breaking them into small segments, merging adjacent segments into larger sorted segments, then increasing the sizes of segments by factors of 2 and repeating the same process. best-case = worst-case = O(n log(n))
- Parameters
-
| first | points to the first element |
| last | points to 1-step past the last element |
| n | the number of elements |