rendered paste body#include <stdio.h>
void merge(int numbers[], int temp[], int left, int mid, int right);
int main()
{
int Polje[11]={3,5,15,28,30,6,10,14,22,43,50};
int B[11];
int i;
// ispis nesortiranih brojeva
printf("\nNesortirani brojevi: ");
for (i = 0; i < 11; i++)
printf("%d ", Polje[i]);
merge(Polje, B, 0, 5, 11);
// ispis sortiranih brojeva
printf("\nSortirani brojevi: ");
for (i = 0; i < 11; i++)
printf("%d ", Polje[i]);
// zavrsili smo
printf("\nKraj\n");
return 0;
}
void merge(int numbers[], int temp[], int left, int mid, int right)
{
int i, left_end, num_elements, tmp_pos;
left_end = mid - 1;
tmp_pos = left;
num_elements = right - left + 1;
while ((left <= left_end) && (mid <= right)) {
if (numbers[left] <= numbers[mid]) {
temp[tmp_pos] = numbers[left];
tmp_pos = tmp_pos + 1;
left = left +1;
}
else {
temp[tmp_pos] = numbers[mid];
tmp_pos = tmp_pos + 1;
mid = mid + 1;
}
}
while (left <= left_end) {
temp[tmp_pos] = numbers[left];
left = left + 1;
tmp_pos = tmp_pos + 1;
}
while (mid <= right) {
temp[tmp_pos] = numbers[mid];
mid = mid + 1;
tmp_pos = tmp_pos + 1;
}
for (i=0; i <= num_elements; i++) {
numbers[right] = temp[right];
right = right - 1;
}
}