Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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 элементов, начиная с номера К Четные элементы переставить в начало массива, нечетные - в конец Элемент с заданным ключом (значением) Простой обмен
  Минимальный элемент Элемент с номером К Поменять местами минимальный и максимальный элементы Элемент равный среднему арифметическому элементов массива Простой выбор

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных