Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 20:38   #1
sibguty
Пользователь
 
Аватар для sibguty
 
Регистрация: 09.12.2011
Сообщений: 13
По умолчанию сортировка массива С++

не могу понять, почему результатом этой программы является только вывод изначального неотсортированного массива, хотя по идее данная программа должна вывести неотсортированный и отсортированный массивы. Подскажите, в чем у меня ошибка.

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>

#define n 10

void Input(int x[], int m);
void Output(int x[], int m);
int ShakerSort(int x[], int m);

int main (void)
{ int A[n];

Input(A,n);
Output(A,n);
ShakerSort(A,n);
Output(A,n);

getch();
}

//инициализация массива
void Input(int x[], int m)
{ int i;
srand(time(NULL));

for (i = 0; i<n; i++)
x[i] = rand()%50;


}
//вывод массива
void Output(int x[], int m)
{ int i;
for(i = 0; i<m; i++)
printf("%d ", x[i]);
}
//шейкерная сортировка
int ShakerSort(int x[],int m)
{ int i,L,R,k,b;
L = 1; R = m; k = m;
do
{ for(i=R;i>=L+1;i--)
{ if (x[i]<x[i-1])
{ b = x[i];
x[i] = x[i-1];
x[i-1] = b;
k = i;
}
}
L = k;
for(i=L;i<=R-1;i++)
{ if(x[i]>x[i+1])
{ b = x[i];
x[i] = x[i+1];
x[i+1] = b;
}
}
R = k;
}
while(L=R);
}
sibguty вне форума Ответить с цитированием
Старый 12.12.2011, 15:00   #2
sibguty
Пользователь
 
Аватар для sibguty
 
Регистрация: 09.12.2011
Сообщений: 13
По умолчанию

Все! я разобралась)))))
РАБОЧАЯ ШЕЙКЕРНАЯ СОРТИРОВКА!!! кому надо!

void ShakerSort(int x[], int m)
{ int i,L,R,k,b;
L = 0; R = m-1; k = m-1;
do
{ for(i=R;i>=L+1;i--)
{ if (x[i]<x[i-1])
{ b = x[i];
x[i] = x[i-1];
x[i-1] = b;
k = i;
}
}
L = k;
for(i=L;i<=R-1;i++)
{ if(x[i]>x[i+1])
{ b = x[i];
x[i] = x[i+1];
x[i+1] = b;
k = i;
}
}
R = k;
}
while(L<R);
for(i=0; i<m; i++)
printf("%d ",x[i]);
}

Последний раз редактировалось sibguty; 12.12.2011 в 15:02.
sibguty вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка массива feras Общие вопросы Delphi 6 23.05.2011 09:56
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
сортировка массива nex 9119 Помощь студентам 1 16.12.2010 15:58
Сортировка массива Neksion Помощь студентам 1 02.12.2010 16:46
Сортировка массива Helennna Microsoft Office Excel 7 06.08.2009 18:41