МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
ПитанняRepeat Begin Var Const Begin Begin Var Const SIZE=10; а:array[1..SIZE] integer; min:integer; { номер мінімального елемента в частині масиву від i до верхньої межі масиву } j:integer; { номер елемента, порівнюваного з мінімальним } buf:integer; {буфер, що використовується при обміні елементів масиву} i,k:integer; // введення масиву fori:=l toSIZE do а[i]:=StrToInt(StringGridl.Cells[i-1,0]) ; Iabel2.caption:=''; fori:=l toSIZE-1 do { пошук мінімального елемента в частині масиву від а[1] до а[SIZE]} min:=i; forj:=i+l toSIZE doif а[j]< а [min] thenmin:=j; { поміняємо місцями а [min] і а[i]} buf:=a[i]; а[i]:=a[min]; а[min]:=buf; { виведення масиву } for k:=l toSIZE do Label2.caption:=label2.caption+' '+IntTostr(а[k]); Label2.caption:=label2.caption+#13; end; Label2.caption:=label2.caption+#13+'Maccив відсортований.'; end; 3. Сортування обміном В основі алгоритму лежить обмін сусідніх елементів масиву. Кожний елемент масиву, починаючи з першого, порівнюється з наступним, і якщо він більше наступного, то елементи міняються місцями. Таким чином, елементи з меншим значенням просуваються до початку масиву (спливають), а елементи з більшим значенням — до кінця масиву (тонуть). Тому даний метод сортування обміном іноді називають методом "бульбашки". Цей процес повторюється стільки раз, скільки елементів в масиві, мінус одиниця.
procedureTForm1.Button1Click(Sender: TObject); SIZE=5; а:array[1..SIZE] integer; К:integer; // поточний елемент масиву i:integer; // індекс для введення і виведення масиву changed:boolean; // TRUE, якщо в поточному циклі були обміни buf:integer; // буфер для обміну елементами масиву // введення масиву fori:=1 toSIZE do а[i]:= StrToInt(StringGrid1.Cells[i-1, 0] ); label2.caption:=''; // сортування масиву Changed:=FALSE; // хай в поточному циклі немає обмінів for К:=l to SIZE-1 doif а[k]> а[k+l] then begin// обміняємо к-й і k+1-й елементи buf := а[k]; а[k]:= а[k+l]; а[k+l]:= buf; changed := TRUE; end; // виведення масиву fori:=l to SIZE do Label2.caption:=label2.caption+' '+IntTostr(а[i]); Label2.caption:=label2.caption+#13; until notchanged; // якщо не було обмінів, значить // масив відсортований Label2.caption:=label2.caption +#13+'Maccив відсортований.'; end;
Слід зазначити, що максимальна необхідна кількість циклів перевірки сусідніх елементів масиву рівна кількості елементів масиву мінус один. Разом з тим можливо, що масив реально впорядкований за менше число циклів. Тому в програму введена логічна змінна changed, якій перед виконанням чергового циклу привласнюється значення FALSE. Процес сортування (цикл repeat) завершується, якщо після виконання чергового циклу перевірки сусідніх елементів масиву (цикл for) жоден елемент масиву не був обмінений з сусіднім, і, отже, масив вже впорядкований. Контрольні запитання 1. На які два види поділяють алгоритми за типом оброблюваної інформації? 2. Що таке сортування даних? 3. В яких структурах звичайно зберігаються сортовані дані? 4. Які ви знаєте алгоритми сортування? 5. Поясніть, як здійснюється сортування методом простого вибору? 6. Поясніть, як здійснюється сортування методом "бульбашки"?
Самостійна позааудиторна робота Тема: 1.4 Основні алгоритми сортування
Читайте також:
|
||||||||
|