Внимание! Studlandia не продает дипломы, аттестаты и иные документы об образовании. Наши специалисты оказывают услуги консультирования и помощи в написании студенческих работ: в сборе информации, ее обработке, структурировании и оформления работы в соответствии с ГОСТом. Все услуги на сайте предоставляются исключительно в рамках законодательства РФ.

Курсовая работа: Написание программы « Методы сортировки массивов» на языке С++ (сортировка вставками, сортировка подсчетом)

  • 06.04.2016
  • Дата сдачи: 10.04.2016
  • Статус: Заказ выполнен и закрыт
  • Детали заказа: # 35838

Тема: Написание программы « Методы сортировки массивов» на языке С++ (сортировка вставками, сортировка подсчетом)

Задание:
Написание программы, использующей методы сортировки массивов, является одним из фундаментальных навыков в программировании на языке C++. В данной статье рассмотрим два таких метода: сортировку вставками и сортировку подсчетом.

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

Для начала создадим функцию, которая будет реализовывать сортировку вставками. Пусть у нас есть массив чисел - numbers, его размер - n. Код функции может выглядеть следующим образом:

```cpp
void insertionSort(int numbers[], int n) {
for (int i = 1; i < n; i++) {
int key = numbers[i];
int j = i - 1;

while (j >= 0 && numbers[j] > key) {
numbers[j + 1] = numbers[j];
j = j - 1;
}

numbers[j + 1] = key;
}
}
```

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

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

Для реализации сортировки подсчетом создадим функцию, которая принимает на вход массив чисел и его размер, а возвращает отсортированный массив. Код может выглядеть следующим образом:

```cpp
int[] countingSort(int numbers[], int n) {
int max = numbers[0];
int min = numbers[0];

for (int i = 1; i < n; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
if (numbers[i] < min) {
min = numbers[i];
}
}

int range = max - min + 1;
int count[range] = {0};

for (int i = 0; i < n; i++) {
count[numbers[i] - min]++;
}

for (int i = 1; i < range; i++) {
count[i] += count[i - 1];
}

int sortedNumbers[n];

for (int i = n - 1; i >= 0; i--) {
sortedNumbers[count[numbers[i] - min] - 1] = numbers[i];
count[numbers[i] - min]--;
}

for (int i = 0; i < n; i++) {
numbers[i] = sortedNumbers[i];
}

return numbers;
}
```

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

Все описанные выше программы позволяют осуществить сортировку массивов с помощью методов вставки и подсчета на языке C++. Эти алгоритмы позволяют эффективно упорядочить элементы любого массива, независимо от его размера.
  • Тип: Курсовая работа
  • Предмет: Информатика
  • Объем: 15 стр.
img
Сейчас онлайн
  • 3872 преподавателей
  • 63096 студента
  • 22836 работ выполняются
img
У нас заказали
Цена
2000 ₽
12 минут назад
Курсовая работа
  • Уникальность 50%
  • Срок выполнения 1 дней
Цена
1800 ₽
10 минут назад
Курсовая работа
  • Уникальность 60%
  • Срок выполнения 4 дней
Цена
4000 ₽
10 минут назад
Цена
4700 ₽
3 минуты назад
Курсовая работа
  • Уникальность 50%
  • Срок выполнения 4 дней
Цена
5050 ₽
9 минут назад
Курсовая работа
  • Уникальность 50%
  • Срок выполнения 47 дней
Цена
2200 ₽
11 минут назад
Курсовая работа
  • Уникальность 50%
  • Срок выполнения 9 дней
Цена
2000 ₽
8 минут назад
103 972 студента обратились к нам за прошлый год
397 оценок
среднее 4.2 из 5
Юлия работа выполнена отлично, раньше срока, недочётов не обнаружено!
Ярослава Благодарю за отличную курсовую работу! Хороший эксперт, рекомендую!
Мария Благодарю за работу, замечаний нет!
Елена Елена прекрасно справилась с задачей! Спасибо большое за великолепно выполненную работу! Однозначно рекомендую!
Михаил Михаил отличный эксперт! Работу сделал раньше заявленного срока, все недочеты поправили, работой довольна! 5+
Иван Спасибо все отлично!
Ярослава Ответственный подход к работе и четкое соблюдение тз, благодарю за выполненный в срок заказ.
Михаил Работа выполнена очень качественно, добросовестно и, что самое важное в срок, даже раньше. Огромное спасибо за ваш...
Ярослава Работа выполнена качественно и в срок. Спасибо большое Ярославе за ответственный и добросовестный труд. Буду...
Михаил Огромное спасибо, Михаил! Работа выполнена качественно и в срок. После проверки работы преподавателем, Михаил внёс...