Сортування одновимірного масиву вставками

Сортування вставками — третій і останній з простих алгоритмів впорядкування одновимірних масивів. Основна ідея даного методу полягає в тому, що на першому кроці порівнюються другий та перший елемент вихідного масиву. Якщо порядок між ними, в залежності від типу сортування (за зростанням чи за спаданням) порушений, то перший елемент пересувається на одну позицію вправо. Тепер відсортований масив складається з двох елементів.

Продовжуючи ітераційний процес далі, беремо наступний (третій, четвертий і так далі) елемент і по черзі порівнюємо його, починаючи з кінця,  з іншими елементами в уже відсортованому масиві. Якщо порядок між порівнюваними елементами порушений, то міняємо їх місцями, якщо ні, то вставка нового елемента закінчена і переходимо до наступної ітерації.

Сортування вставками

Сортування вставками

Далі, реалізуємо алгоритм сортування вставками в середовищі програмування delphi. Для цього, запустимо delphi, після чого, на головній формі розмістимо наступні компоненти:

Читати повністю

Сортування одновимірного масиву методом бульбашки (сортування обміном)

Сортування обміном (також відоме як сортування методом бульбашки) полягає в тому, що всі сусідні єлементі вихідного масиву попарно порівнюються один з одним і міняються місцями, якщо попередній єлемент більший, або менший в залежності від типу сортування (за зростанням чи за спаданням) від наступного. В результаті максимальний (мінімальний) елемент поступово зміщується вправо і після першого такого перегляду займе крайнє праве положення. Потім процес перегляду повторюється, і своє місце займає другий за величиною елемент, який також виключається з подальшого розгляду. Продовжуючи даний процес далі, на останньому кроці отримаємо впорядковану послідовність.

Читати повністю

Сортування одновимірного масиву методом вибору

Сортування вибором являється одним з напростіших алгоритмів сортування лінійного масиву, основна ідея якого зводиться до послідовного відшукання, в невідсортованому масиві, манімального або максимального елемента, в залежності від того як необхідно сортувати масив, за зростанням чи за спаданням, та виключення його з розгляду (в нашому випадку всі пояснення будуть здійснюватись для сортування за зростанням). Тобто подальша обробка елементів вихідного масиву здійснюється без урахування даного елемента. Цей процес повторюється до тих пір, поки всі елементи не будуть виключені. В результаті виключені з розгляду елементи утворюватимуть впорядковану послідовність.

Читати повністю

Перевірка приналежності точки багатокутнику

Припустимо, що нам необхідно, для деякої точки Метод трасування променя визначити, чи належить вона багатокутнику, чи лежить поза його межами (відмітимо, що точка належить багатокутнику, коли вона міститься на одній з його сторін або в його середині).

З'ясувати приалежність точки стороні багатокутника доволі просто, скориставшись алгоритмом приналежності точки відрізку: якщо точка Метод трасування променя належить відрізку з координатами metod_trasyvannja_promenja2 та metod_trasyvannja_promenja3, то повинна виконуватись наступна рівність:

metod_trasyvannja_promenja4

Для визначення приналежності точки середині багатокутника скористаємось одним із стандартних методів, а саме: проведемо з даної точки пряму, паралельну осі metod_trasyvannja_promenja6 і підраховуємо, скільки сторін даного багатокутника вона перетинає. Якщо в результаті підрахунку було отримано непарну кількість сторін, то точка metod_trasyvannja_promenja5 міститься в середині багатокутника, якщо парна кількість або нуль — то точка metod_trasyvannja_promenja5 міститься за його межами.

Читати повністю

Знаходження точки перетину двох прямих заданих двома точками

Нехай маємо дві прямі задані точками свого початку та кінця (перша пряма задана точками Точка перетину двох прямих таline_intersection2 і друга — line_intersection3 та line_intersection4 відповідно), для яких необхідно визначити координати точки їх перетину. Очевидне рішення даної задачі полягає в тому, щоб вирішити систему з двох лінійних рівнянь, які описують задані прямі.

Отже, якщо задані дві точки Точка перетину двох прямих і line_intersection2, то з курсу аналітичної геометрії відомо, що рівняння прямої, яке проходить через ці точки, можна записати у наступному вигляді:

line_intersection6

Отриманий вираз слід перетворити до вигляду загального рівняння прямої: line_intersection7. Для цього, звільнимо рівняння (1) від дробів, розкриємо дужки та згрупуємо доданки при невідомих.

Читати повністю

Алгоритм побудови графіка функції двох змінних

Графік функції двох змінних Графік функції двох змінних можна собі уявляти у вигляді деякої поверхні в тривимірному просторі. Для наочного зображення поверхні будемо використовувати наступний алгоритм: проведемо в просторі площину grafik_funkcii_3d4, паралельну осям grafik_funkcii_3d5 і grafik_funkcii_3d6. Тоді перетин даної площини з поверхнею функції є деяка крива — графік функції однієї змінної grafik_funkcii_3d7. (правда, розташований цей графік під певним кутом до площини екрану). Змінюючи значення константи з деяким кроком, ми отримаємо сімейство таких кривих.

Графік функції 3D

Графічне представлення алгоритму побудови графіка функції двох змінних

Наступним кроком алгоритму є побудова другого сімейства кривих, кожна з яких буде перетином поверхні площиною grafik_funkcii_3d8. Накладення сімейства таких кривих дають хороше уявлення про поверхню граіка вихідеої функції.

Читати повністю

Побудова графіка функції в середовищі програмування delphi використовуючи компонент Chart

При створенні delphi-проектів, які реалізують розглядувані на даному сайті чисельні методи, доволі часто виникає необхідність виводу графічного представлення певної функції. Наприклад, при програмній реалізації знаходження екстремума функції, ми здійснювали побудову графіка даної функції, і таким чином виконували перевірку правильності роботи того чи іншого методу. Алгоритм побудови графіка функції на канві форми, було розглянуто за посиланням Побудова графіка функції в середовищі програмування delphi. Согодні розглянемо дещо простіший спосіб, який базується на використанні спеціального компонента для виведення готовиг графічних зображень, а саме компонент Chart. Зокрема, даний компонент (знаходиться на закладці Additional палітри компонентів delphi) дозволяє будувати різноманітні діаграми та графіки.

Читати повністю

« Попередня сторінкаНаступна сторінка »