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/d2/d26/count__inversions_8cpp_source.html below:

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

85

uint32_t

merge

(T* arr, T* temp, uint32_t left, uint32_t mid, uint32_t right) {

89

uint32_t inv_count = 0;

91 while

((i <= mid) && (j <= right)) {

92 if

(arr[i] <= arr[j]) {

103

temp[k++] = arr[i++];

106

temp[k++] = arr[j++];

109 for

(k = left; k <= right; k++) {

132

uint32_t

mergeSort

(T* arr, T* temp, uint32_t left, uint32_t right) {

133

uint32_t mid = 0, inv_count = 0;

136

mid = (right + left) / 2;

138

inv_count +=

mergeSort

(arr, temp, left, mid);

139

inv_count +=

mergeSort

(arr, temp, mid + 1, right);

142

inv_count +=

merge

(arr, temp, left, mid, right);

167

temp.assign(size, 0);

168 return mergeSort

(arr, temp.data(), 0, size - 1);

179void show

(T* arr,

const

uint32_t array_size) {

180

std::cout <<

"Printing array: \n"

;

181 for

(uint32_t i = 0; i < array_size; i++) {

182

std::cout <<

" "

<< arr[i];

196

std::vector<uint64_t> arr1 = {

197

100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84,

198

83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67,

199

66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50,

200

49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33,

201

32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16,

202

15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};

203

uint32_t size1 = arr1.size();

204

uint32_t inv_count1 = 4950;

206

assert(inv_count1 == result1);

208

std::vector<int> arr2 = {22, 66, 75, 23, 11, 87, 2, 44, 98, 43};

209

uint32_t size2 = arr2.size();

210

uint32_t inv_count2 = 20;

212

assert(inv_count2 == result2);

214

std::vector<double> arr3 = {33.1, 45.2, 65.4, 76.5, 1.0,

215

2.9, 5.4, 7.7, 88.9, 12.4};

216

uint32_t size3 = arr3.size();

217

uint32_t inv_count3 = 21;

219

assert(inv_count3 == result3);

221

std::vector<char> arr4 = {

'a'

,

'b'

,

'c'

,

'd'

,

'e'

};

222

uint32_t size4 = arr4.size();

223

uint32_t inv_count4 = 0;

225

assert(inv_count4 == result4);


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