A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://TheAlgorithms.github.io/C-Plus-Plus/d0/db6/non__recursive__merge__sort_8cpp_source.html below:

TheAlgorithms/C++: sorting/non_recursive_merge_sort.cpp Source File

Go to the documentation of this file. 12template

<

class

Iterator>

13void merge

(Iterator, Iterator,

const

Iterator,

char

[]);

24template

<

class

Iterator>

29 char

* buffer =

new char

[n *

sizeof

(*first)];

33 for

(

size_t

length(1); length < n; length <<= 1) {

36 for

(

size_t

counter(n / (length << 1)); counter; --counter) {

37

Iterator right(left + length), end(right + length);

38 merge

(left, right, end, buffer);

43 if

((n & ((length << 1) - 1)) > length)

44 merge

(left, left + length, last, buffer);

56template

<

class

Iterator>

57void merge

(Iterator l, Iterator r,

const

Iterator e,

char

b[]) {

59 auto

p(

reinterpret_cast<

std::remove_reference_t<decltype(*l)

>

*>(b)), c(p);

61 for

(Iterator t(l); r != t; ++t) *p++ = std::move(*t);

64 while

(e != r && c != p) *l++ = std::move(*r < *c ? *r++ : *c++);

67 while

(e != r) *l++ = std::move(*r++);

69 while

(c != p) *l++ = std::move(*c++);

76template

<

class

Iterator>

85template

<

class

Iterator>

96

std::cout <<

"Enter the number of elements : "

;

98 int

* arr =

new int

[size];

99 for

(

int

i = 0; i < size; ++i) {

100

std::cout <<

"arr["

<< i <<

"] = "

;

104

std::cout <<

"Sorted array\n"

;

105 for

(

int

i = 0; i < size; ++i)

106

std::cout <<

"arr["

<< i <<

"] = "

<< arr[i] <<

'\n'

;

int main()

Main function.

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

void merge(Iterator, Iterator, const Iterator, char[])

merges 2 sorted adjacent segments into a larger sorted segment

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


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4