Файл: «Сортировка данных в массиве. Оценка эффективности метода».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.02.2024

Просмотров: 51

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

else break;

}

printf("Введите правую границу диапазона сортировки: \t");

for( ; ; ){

if(scanf("%d", &b)==0){

printf("\n\n\aОшибка! Неправильный тип данных.\nПожалуйста, введите правую границу диапазона сортировки заново: ");

fflush(stdin);

}

else break;

}

A=(char *)malloc(n*sizeof(char));

printf("Исходный массив: \t");

for(i=0; i<n; i++){

A[i]=rand()%(char(b)+1-char(a))+char(a);

cout << A[i] << "\t";

}

printf("\n");

maxC=(int)A[0];

minC=(int)A[0];

for(i=1; i<n; i++){

if(maxC<A[i])

maxC=A[i];

if(minC>A[i])

minC=A[i];

}

C=(int *)calloc(maxC-minC+1,sizeof(int));

for(i=0; i<n; i++){

C[(int)A[i]-minC]++;

}

printf("Результат: \t");

//Вывод в от большего к меньшему

for(i=maxC-minC; i>=0; i--){

for(j=0; j<C[i]; j++){

cout << char(i+minC) << "\t";

}

}

printf("\n\n");

free(C);

free(A);

}

void Exit(){

printf("\n\nВы ввели 6 для завершения работы.\n");

exit(0);

}

Заключение

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

В ходе работы был изучен метод сортировки подсчетом, которая имеет свои особенности.

Во-первых, применение сортировки подсчётом целесообразно лишь тогда, когда сортируемые числа имеют диапазон возможных значений, который достаточно мал по сравнению с сортируемым множеством. Эффективность алгоритма падает, если при попадании нескольких различных элементов в одну ячейку, их надо дополнительно сортировать.

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

Список литературы

  1. ГОСТ 19.701-90 Схемы алгоритмов программ, данных и систем. М., 1992. 22 с.
  2. ГОСТ 2.105-95. Общие требования к текстовым документам. М., 1996. 31 с.
  3. Форум программистов и сисадминов CyberForum.ru http://www.cyberforum.ru/visual-basic/thread141819.html
  4. Интерактивный учебник по Visual Basic http://msdn.microsoft.com/ru-ru/library/2x7h1hfk(v=vs.90).aspx
  5. Пособие-самоучитель on-line «Visual Basic с нуля» http://vbzero.narod.ru/page_7.htm
  6. Система дистанционной поддержки учебного процесса кафедры информатики. URL: http://informatic.ugatu.ac.ru/kafedra/index.php.
  7. Дональд Эрвин Кнут, Искусство программирования. Том 1. Основные алгоритмы. — СПб.: Вильямс, 2015. — 720 с. 2. Роберт Седжвик, Кевин Уэйн, Алгоритмы на Java. — СПб.: Вильямс, 2016. — 848 с. 3. Томас Х. Кормен, Чарльз И. Лейзерсон, Алгоритмы. Построение и анализ. — СПб.: Вильямс, 2016. — 1328 с.
  8. Рыжов С. С. Анализ эффективности алгоритмов сортировки и вcтроенных реализаций на примере языка программирования Java // Молодой ученый. — 2017. — №21. — С. 26-29. — URL https://moluch.ru/archive/155/43911/ (дата обращения: 12.09.2019).