#include 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, 10); // 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; } }