Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void sort(int *arr, int start, int end) {
- if (start == end) return;
- int mid = (start + end) / 2;
- sort(arr, start, mid);
- sort(arr, mid + 1, end);
- int temp[end - start + 1];
- int i1 = start, i2 = mid + 1;
- int k = 0;
- while (i1 <= mid && i2 <= end) {
- if (arr[i1] < arr[i2]) {
- temp[k++] = arr[i1++];
- } else {
- temp[k++] = arr[i2++];
- }
- }
- while (i1 <= mid) {
- temp[k++] = arr[i1];
- i1++;
- }
- while(i2 <= end) {
- temp[k++] = arr[i2];
- i2++;
- }
- for (int i = 0; i < end - start + 1; i++) {
- arr[start + i] = temp[i];
- }
- }
- int main() {
- int n;
- scanf("%d", &n);
- int arr[n];
- for (int i = 0; i < n; i++) {
- scanf("%d", &arr[i]);
- }
- sort(arr, 0, n - 1);
- for (int i = 0; i < n; i++) {
- printf("%d ", arr[i]);
- }
- printf("\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment