Главная
Популярная публикация
Научная публикация
Случайная публикация
Обратная связь
ТОР 5 статей:
Методические подходы к анализу финансового состояния предприятия
Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века
Ценовые и неценовые факторы
Характеристика шлифовальных кругов и ее маркировка
Служебные части речи. Предлог. Союз. Частицы
КАТЕГОРИИ:
|
Сортировка методом простого выбора
Чтобы упорядочить массив в возрастающем порядке, нужно выбрать наибольший элемент. Поскольку наибольший элемент нужно поставить в самый конец массива, его нужно поменять местами с последним элементом, даже если эти элементы идентичны. Теперь, игнорируя последний (наибольший) элемент массива, выполним поиск наибольшего элемента в оставшейся части массива и поменяем его местами с предпоследним элементом исходного массива. Этот процесс продолжается до тех пор, пока не будут найдены и переставлены n-l элемент из п элементов массива. Оставшийся элемент, стоящий первым, не нарушает порядок и поэтому не рассматривается.
На рис. показан пример сортировки методом выбора. Среди пяти целых чисел выбирается наибольшее - число 37, которое меняется местами с последним элементом массива - числом 13. (Числа, стоящие на правильных местах, выделены полужирным шрифтом. Затем среди оставшихся четырех чисел снова выбирается наибольшее - число 29, - которое меняется местами с предпоследним элементом - числом 13. Обратите внимание, что следующий выбор - число 14- уже стоит на правильном месте, однако алгоритм игнорирует этот факт и выполняет фиктивную перестановку числа 14 на одном и том же месте. В принципе намного эффективнее выполнять фиктивные перестановки, чем каждый раз проверять, нужна перестановка или нет. В заключение выбирается число 13, которое меняется местами со вторым элементом массива - числом 1о. Теперь массив упорядочен по возрастанию.
int i,max, n_max,j;
for(i=0;i<n-1;i++)
{
max=a[i]; n_max=i; //поиск максимального
for(j=i+1; j<n; j++)
if(a[j]>max)
{
max=a[j];
n_max=j;
}
a[n_max]=a[i]; //обмен
a[i]=max;
}
Постановка задачи
1. Сформировать массив из n элементов с помощью датчика случайных чисел (n задается пользователем с клавиатуры).
2. Распечатать полученный массив.
3. Выполнить удаление указанных элементов из массива.
4. Вывести полученный результат.
5. Выполнить добавление указанных элементов в массив.
6. Вывести полученный результат.
7. Выполнить перестановку элементов в массиве.
8. Вывести полученный результат.
9. Выполнить поиск указанных в массиве элементов и подсчитать количество сравнений, необходимых для поиска нужного элемента.
10. Вывести полученный результат.
11. Выполнить сортировку массива указанным методом.
12. Вывести полученный результат.
13. Выполнить поиск указанных элементов в отсортированном массиве и подсчитать количество сравнений, необходимых для поиска нужного элемента.
14. Вывести полученный результат.
При решении задач использовать псевдодинамические массивы.
Варианты
Вариант
| Удаление
| Добавление
| Перестановка
| Поиск
| Сортировка
|
| Максимальный элемент
| К элементов в начало массива
| Перевернуть массив
| Первый четный
| Простой обмен
|
| Минимальный
элемент
| К элементов в конец массива
| Сдвинуть циклически на M элементов вправо
| Первый отрицательный
| Простой выбор
|
| Элемент с заданным номером
| N элементов, начиная с номера К
| Сдвинуть циклически на M элементов влево
| Элемент с заданным ключом (значением)
| Простое включение
|
| N элементов, начиная с номера K
| Элемент с номером К
| Поменять местами элементы с четными и нечетными номерами
| Элемент равный среднему арифметическому элементов массива
| Простой обмен
|
| Все четные элементы
| К элементов в начало массива
| Четные элементы переставить в начало массива, нечетные - в конец
| Первый четный
| Простой выбор
|
| Все элементы с четными индексами
| К элементов в конец массива
| Поменять местами минимальный и максимальный элементы
| Первый отрицательный
| Простое включение
|
| Все нечетные элементы
| N элементов, начиная с номера К
| Положительные элементы переставить в начало массива, отрицательные - в конец
| Элемент с заданным ключом (значением)
| Простой обмен
|
| Все элементы с нечетными индексами
| Элемент с номером К
| Перевернуть массив
| Элемент равный среднему арифметическому элементов массива
| Простой выбор
|
| Все элементы больше среднего арифметического элементов массива
| К элементов в начало массива
| Сдвинуть циклически на M элементов вправо
| Первый четный
| Простое включение
|
| Максимальный
элемент
| К элементов в конец массива
| Сдвинуть циклически на M элементов влево
| Первый отрицательный
| Простой обмен
|
| Минимальный элемент
| N элементов, начиная с номера К
| Поменять местами элементы с четными и нечетными номерами
| Элемент с заданным ключом (значением)
| Простой выбор
|
| Элемент с заданным номером
| Элемент с номером К
| Четные элементы переставить в начало массива, нечетные - в конец
| Элемент равный среднему арифметическому элементов массива
| Простое включение
|
| N элементов, начиная с номера K
| К элементов в начало массива
| Поменять местами минимальный и максимальный элементы
| Первый четный
| Простой обмен
|
| Все четные элементы
| К элементов в конец массива
| Положительные элементы переставить в начало массива, отрицательные - в конец
| Первый отрицательный
| Простой выбор
|
| Все элементы с четными индексами
| N элементов, начиная с номера К
| Перевернуть массив
| Элемент с заданным ключом (значением)
| Простое включение
|
| Все нечетные элементы
| Элемент с номером К
| Сдвинуть циклически на M элементов вправо
| Элемент равный среднему арифметическому элементов массива
| Простой обмен
|
| Все элементы с нечетными индексами
| К элементов в начало массива
| Сдвинуть циклически на M элементов влево
| Первый четный
| Простой выбор
|
| Все элементы больше среднего арифметического элементов массива
| К элементов в конец массива
| Поменять местами элементы с четными и нечетными номерами
| Первый отрицательный
| Простое включение
|
| Максимальный элемент
| N элементов, начиная с номера К
| Четные элементы переставить в начало массива, нечетные - в конец
| Элемент с заданным ключом (значением)
| Простой обмен
|
| Минимальный элемент
| Элемент с номером К
| Поменять местами минимальный и максимальный элементы
| Элемент равный среднему арифметическому элементов массива
| Простой выбор
|
Не нашли, что искали? Воспользуйтесь поиском:
|