Регистрация | Вход
void qqqInt(int* start, int* end){ int len = end - start; int mid = start[0], l1 = 0, l2 = 0; int* less = calloc(len, sizeof(int)); int* more = calloc(len, sizeof(int)); for (int i = 0; i < len; ++i) { if (start[i] < mid)less[l1++] = start[i]; else more[l2++] = start[i]; } for (int i = 0; i < len; ++i) { if (i < l1) start[i] = less[i]; else start[i] = more[i - l1]; } if (l1 > 1) qqqInt(start, start + l1); if (l2 > 1) qqqInt(start + l1 + 1, end); free(less); free(more);}