Практикум по курсу "Алгоритмизация и программирование". Часть 1. Андрианова А.А - 49 стр.

UptoLike

49
for (int i = 1; i < n; i++)
if (max < a[i])
{
max = a[i];
kmax = i;
}
else if (min > a[i])
{
min = a[i];
kmin = i;
}
a[kmax] = min;
a[kmin] = max;
Console.WriteLine("Массив после перестановки элементов:");
for (int i = 0; i < n; i++)
Console.Write("{0} ", a[i]);
Console.WriteLine();
}
}
}
Задача 5. Дан массив. Отсортировать элементы массива по возрастанию.
Существует множество алгоритмов сортировки массивов. Ряд из них
приведен в книге Кнута “Искусство программирования”, том 3 “Сортировка и
поиск”. Рассмотрим два таких алгоритма.
5.1. Метод линейного выбора.
Сначала требуется найти минимальный элемент массива. Его нужно
поставить на первое место. Поэтому меняем местами первый и минимальный
элементы массива. После выполнения этой процедуры первый элемент
массива находится на своем месте. Далее следует повторить эти же действия,
исключив из рассмотрения первый элемент. В оставшемся массиве ищется
минимальный элемент и устанавливается на второе место и т.д. В итоге
получим отсортированный массив.
Блок-схема решения задачи 5 методом линейного выбора представлена
на Рис.4.10.
Код программы для задачи 5 (алгоритм линейного выбора).
using System;
namespace Examples
{
class Program1
{
static void Main(string[] args)
{
int n;
int[] a;
Console.Write("Введите количество элементов массива n:");
int.TryParse(Console.ReadLine(), out n);
                for (int i = 1; i < n; i++)
                    if (max < a[i])
                    {
                        max = a[i];
                        kmax = i;
                    }
                    else if (min > a[i])
                    {
                        min = a[i];
                        kmin = i;
                    }
                a[kmax] = min;
                a[kmin] = max;
                Console.WriteLine("Массив после перестановки элементов:");
                for (int i = 0; i < n; i++)
                    Console.Write("{0} ", a[i]);
                Console.WriteLine();
            }
        }
    }

    Задача 5. Дан массив. Отсортировать элементы массива по возрастанию.
Существует множество алгоритмов сортировки массивов. Ряд из них
приведен в книге Кнута “Искусство программирования”, том 3 “Сортировка и
поиск”. Рассмотрим два таких алгоритма.
    5.1. Метод линейного выбора.
    Сначала требуется найти минимальный элемент массива. Его нужно
поставить на первое место. Поэтому меняем местами первый и минимальный
элементы массива. После выполнения этой процедуры первый элемент
массива находится на своем месте. Далее следует повторить эти же действия,
исключив из рассмотрения первый элемент. В оставшемся массиве ищется
минимальный элемент и устанавливается на второе место и т.д. В итоге
получим отсортированный массив.
    Блок-схема решения задачи 5 методом линейного выбора представлена
на Рис.4.10.

    Код программы для задачи 5 (алгоритм линейного выбора).
    using System;

    namespace Examples
    {
        class Program1
        {
            static void Main(string[] args)
            {
                int n;
                int[] a;
                Console.Write("Введите количество элементов массива n:");
                int.TryParse(Console.ReadLine(), out n);
                                        49