>. 2 Лінійний пошук
Лінійний пошук ефективний у масивах, з невеликою кількістю елементів, причому елементи в таких масивах Ніяк не відсортовані і не впорядковані. Алгоритм лінійного пошуку в масивах послідовно перевіряє всі елементи масиву і порівнює їх з ключовим значенням. Щоб переконатися, у відсутності шуканого значення необхідно перевірити всі елементи масиву. У лінійного пошуку є один недолік: якщо зразок не присутня в масиві, то без прийняття запобіжних заходів пошук може вийти за межі масиву.
Лінійний пошук необхідний у видаленні з вихідного списку про готелі, в яких немає вільних номерів. Отже, рішення ділиться на 3 пункти:
) Ввести кількість готелів;
) Пошук готелів, в яких немає вільних номерів;
) Видалити дані.
sspisok :: udalenie ()
{spisok * p;//n=0; ((BegQ!=NULL) amp; amp; (EndQ!=NULL))
{= BegQ; (p!=NULL//пошук номерів
{n ++; (p- gt; data.kolichestvo_s == 0)//якщо немає вільних номерів
{sspisok :: delete_data (n);// видалення готелі -;//повернення індексу до попереднього елемента
}=p- gt; next;
};
}
} ((BegQ == NULL) amp; amp; (EndQ == NULL))//якщо список порожній
{cout lt; lt; Списку не був створений або порожній lt; lt; endl;
}((BegQ-gt;data.kolichestvo_o==NULL)amp;amp;(EndQ-gt;data.kolichestvo_o==NULL))//проверка на порожнечу списку
{cout lt; lt; Список порожній lt; lt; endl;//висновок соотв. повідомлення
};
}
Пошук в програмі реалізований згідно з алгоритмом лінійного пошуку.
. 3 Сортування методом вставки
Розглянемо сортування методом вставки. Принцип методу полягає в наступному:
Масив розділяється на 2 частини: відсортовану і не відсортовану. Елементи з НЕ відсортованій частині почергово вибираються і вставляються в відсортовану частину так, щоб не порушити в ній впорядкованість елементів. На початку роботи алгоритму в якості відсортованій частині масиву приймають тільки перший елемент, а в якості не відсортованої - всі інші елементи.
Таким чином, алгоритм буде складатися з (n - 1) - го проходу (n - розмірність масиву), кожен з яких включатиме 4 дії:
взяття чергового i-го відсортованого елемента і збереження його в додатковій змінної;
пошук позиції i в відсортованій частині масиву, в якій присутність взятого елемента не порушить впорядкованості елементів;
зрушення елементів масиву від i-го до (j - 1) -го вправо, щоб звільнити знайдену позицію вставки;
вставка взятого елемента в знайдену i-у позицію
Прикладом сортування вставками можна взяти пункт з розробленої програми сортування за загальною кількістю місць у готелі.
sspisok :: sort_mas (long n)//сортування масиву за загальною кількістю місць
{data_ tmp; (int i=1; i lt; n; i ++) {(int j=0; j lt; ni; j ++) {(c [j] .kolichestvo_o gt; c [j + 1] .kolichestvo_o) {= c [j]; [j]=c [j + 1]; [j + 1]=tmp;
}
}
}
};
Сортування в програмі реалізована згідно методу вставки.
алгоритм сортування дані лінійний
3 .Алгорітмізація завдання
Схема алгоритмів і пояснення використовуваних ідентифікаторів наведені у Додатку Б і керівництві програміста. Текст програми представлений в додатку А.
Рішення завдання включає наступні етапи:
) Формування масиву даних;
) Виведення даних на екран;
) Видалення даних;
) Переміщення даних;
) Сортування даних;
) Запис даних у файл;
) Завантаження даних з файлу;
. 1 Алгоритм формування даних
При створенні списку даних про готелях необхідно:
Крок 1. Введення розмірності масиву;
Крок 2. Цикл: для i=0; i lt; n; i ++ виконувати введення:
Назва Data.nazvanie;
Клас Data.class _;
Загальна кількість місць - Data.kolichestvo_o;
Кількість вільн...