Голосование за лучший ответ
Dmitry
Просветленный
(22421)
5 лет назад
Здесь не нужна сортировка пузырьком - в этой задаче принцип, как у разбиения в быстрой сортировке. Можно за один проход переставить весь массив:
#include < stdio.h >
#include < stdlib.h >
#include < time.h >
void swap(int* a, int* b) {
const int temp = *a;
*a = *b;
*b = temp;
}
int main() {
const int size = 14;
int l[size];
srand((unsigned)time(NULL));
for (int i = 0; i < size; i++) {
l[i] = rand() % 51;
printf("%d ", l[i]);
}
printf("\n");
const int first = *l;
int j = 0;
for (int i = 1; i < size; i++)
if (l[i] > first) {
j++;
swap(l + i, l + j);
}
swap(l, l + j);
for (int i = 0; i < size; i++)
printf("%d ", l[i]);
return 0;
}