- 17.10.2015 23:49
- Информатика
- remove_red_eye 18908
- thumb_up 48
Ответы и объяснения 1
void sort(int in[], int a, int b) {
int i,j,mode;
if (a >= b) return;
for (i=a, j=b, mode=1; i 0 ? j-- : i++)
if (in[i] > in[j]) {
int c = in[i];
in[i] = in[j];
in[j] = c;
mode = -mode;
}
sort(in, a, i-1);
sort(in, i+1, b);
}
int main(void) {
int m = 0; int x = 0;
int a[10] = {-8,-10,5,6,-10,-3,9,-7,-7,-8};
printf("\nИзначальный массив: ");
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод обменом (пузырьком): ");
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9-i; j++) {
if (a[j] < a[j + 1]) {
m = a[j];
a[j] = a[j + 1];
a[j + 1] = m;
}
}
}
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод вставкой: ");
for (int i = 0; i < 10; i++) {
x = a[i];
m = i;
while (m > 0 && a[m - 1] > x) {
a[m] = a[m - 1];
m = m - 1;
}
a[m] = x; }
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод выбором: ");
for (int i = 0; i < 10; i++) {
m = i;
for (int j = i + 1; j < 10; j++) {
if (a[j] > a[m]) {
m = j;
}
}
x = a[i];
a[i] = a[m];
a[m] = x;
}
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод разделением (qsort): ");
sort(a, 0, 9);
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
return 0;
}
- 18.10.2015 05:48
- thumb_up 27
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.