MrEfendi icon

Sortowanie C++ przez scalanie

MrEfendi | PRO | 01/04/16 12:42:06 PM UTC | 0 ⭐ | 313 👁️ | Never ⏰ | []
C++ |

690 B

|

None

|

0 👍

/

0 👎

void scalaj(unsigned long int l, unsigned long int s, unsigned long int p, float *a) {
    unsigned long int i, j, m, k;
    float z[n + 1];
    i = l;
    j = s;
    m = i;
    do {
        if (a[i] <= a[j]) {
            z[m] = a[i];
            i++;
        }
        else {
            z[m] = a[j];
            j++;
        }
        m++;
    } while (i < s && j <= p);
 
    if (i < s) {
        k = p;
        for (unsigned long int j = s - 1; i <= j; j--) {
            a[k] = a[j];
            k--;
        }
    }
 
    for (unsigned long int i = l; i <= m - 1; i++) {
        a[i] = z[i];
    }
}
 
void sort_scal(unsigned long int d, unsigned long int g, float *a) {
    unsigned long int s;
    if (d < g) {
        s = (d + g) / 2;
        sort_scal(d, s, a);
        sort_scal(s + 1, g, a);
        scalaj(d, s + 1, g, a);
    }
}

Comments