Практикум по информатике и информационным технологиям. I. Обработка данных на ПК

95 Необходимо предусмотреть, чтобы в процессе поиска начальное значение z по крайней мере один раз было заменено числом из массива jc . В некоторых случаях заранее указать такое значение z затруднительно, поэтому в качестве начального значения принимается первый элемент массива jc [0], а цикличе­ ская работа алгоритма начинается со второго элемента массива. Именно по этому принципу построен следующий фрагмент программы поиска макси­ мального элемента массива: intn=10, zj,x[10]; z=x[0]; j=0; for(int i=l; i<n; i++) if(z<x[i]) { z=x[i]; j=i; } В результате вычислений переменная z получит значение, равное наи­ большему числу в массиве jc . 10.4.2. Задача сортировки и упорядочения массива При решении этой задачи требуется сформировать новый массив, со- стояш,ий из элементов исходного массива, но расположенных в соответствии с предложенным критерием. Возможно два подхода при решении этой зада­ чи. В первом случае исходный массив требуется сохранить для других задач, во втором случае исходный массив можно изменять, переставляя его элемен­ ты. Во втором случае программа получается более компактной, поэтому рас­ смотрим этот случай, тем более, что первый случай легко сводится ко второ­ му путем предварительного переноса содержимого исходного массива в но­ вый рабочий массив, что позволяет сохранить исходный массив. Пример. Дан массив а\п\. Необходимо переставить этот массив таким образом, чтобы элементы массива были размеш,ены в порядке возрастания их величины. Ход решения этой задачи следуюш,ий: 1. В исходном массиве а отыскать наименьший по величине элемент. Запомнить номер этого элемента. 2. Найденный элемент поменять местами с первым элементом масси­ ва. 3. Повторить поиск наименьшего элемента в массиве со второго до п- го элемента. 4. Новый наименьший элемент поменять местами со вторым элемен­ том массива. 5. Этапы 3 и 4 повторить с уменьшаюш,имся остатком массива до пол­ ного упорядочения массива. Рассматриваемая задача решается с помощью следующего фрагмента программы: for(int i=0; i<n-l; i++) { z=a[i]; k=i;

RkJQdWJsaXNoZXIy MTY0OTYy