Напишите программку, работающую с одним массивом из 10 элементов целочисленного типа.
Напишите программку, работающую с одним массивом из 10 элементов целочисленного типа. Программка просит юзера заполнить массив целыми значениями, потом упорядочивает этот массив по возрастанию, используя сортировку способом обычного выбора. После этого программка просит пользователя ввести одно целое значение, и, используя алгоритм двоичного поиска, определяет, имеется ли данное значение в массиве. В процессе сортировки программа считает, сколько раз выполнялись перестановки частей (обмен значениями 2-ух различных частей считается за одну перестановку), и сколько раз производились сопоставления значений частей массива с какими или иными значениями. Количество сравнений и перестановок выводится на экран перед завершением работы программы.
Pascal ABC
N = 10;
Var
A:array[1..N] of integer;
i,j,M,B,C,p,s:integer;
Begin
Randomize;
Наполнение и вывод
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(' ',A[i]);
End;
WriteLn;
Сортировка
p:=0;
For i:= 1 to N do
Begin
M:=i;
For j:= i+1 to N do
if A[j]lt;A[M] then M:=j;
if Mlt;gt;i then
Begin
B:=A[M];
A[M]:=A[i];
A[i]:=B;
p:=p+1;
Вывод каждого шага сортировки
Write('Перестановка ',p,':');
For j:= 1 to N do
Write(' ',A[j]);
WriteLn;
End;
End;
WriteLn;
Write('Отсортированный массив:');
For i:= 1 to N do
Write(' ',A[i]);
Бинарный поиск
WriteLn;
Write('Введите число: ');ReadLn(C);
m:=N div 2;
i:=1;
j:=N;
s:=0;
While (A[m]lt;gt;C)and(ilt;=j) do
Begin
if C gt; A[m] then i:=m+1
else j:=m-1;
s:=s+1;
m:=(i+j) div 2;
End;
WriteLn;
if A[m]=C then WriteLn('В массиве есть данное число')
else WriteLn('В массиве нет данного числа');
WriteLn('Кол-во перестановок за сортировку: ',p);
WriteLn('Кол-во сопоставлений за поиск: ',s);
End.
Примеры:
Начальный массив: 0 4 5 4 1 2 6 7 0 7
Перестановка 1: 0 0 5 4 1 2 6 7 4 7
Перестановка 2: 0 0 1 4 5 2 6 7 4 7
Перестановка 3: 0 0 1 2 5 4 6 7 4 7
Перестановка 4: 0 0 1 2 4 5 6 7 4 7
Перестановка 5: 0 0 1 2 4 4 6 7 5 7
Перестановка 6: 0 0 1 2 4 4 5 7 6 7
Перестановка 7: 0 0 1 2 4 4 5 6 7 7
Отсортированный массив: 0 0 1 2 4 4 5 6 7 7
Введите число: 3
В массиве нет данного числа
Кол-во перестановок за сортировку: 7
Кол-во сопоставлений за поиск: 4
Начальный массив: 4 4 1 3 4 4 5 0 7 2
Перестановка 1: 0 4 1 3 4 4 5 4 7 2
Перестановка 2: 0 1 4 3 4 4 5 4 7 2
Перестановка 3: 0 1 2 3 4 4 5 4 7 4
Перестановка 4: 0 1 2 3 4 4 4 5 7 4
Перестановка 5: 0 1 2 3 4 4 4 4 7 5
Перестановка 6: 0 1 2 3 4 4 4 4 5 7
Отсортированный массив: 0 1 2 3 4 4 4 4 5 7
Введите число: 5
В массиве есть данное число
Кол-во перестановок за сортировку: 6
Кол-во сопоставлений за поиск: 2
-
Вопросы ответы
Статьи
Информатика
Статьи
Экономика.
Экономика.
Русский язык.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Химия.
Русский язык.
Геометрия.