Послідовні таблиці. h2>
Будемо розглядати невідсортоване таблиці. p>
K - кількість елементів в таблиці p>
N - довжина вектора подання елементів таблиці p>
Векторне подання: p>
type елемент = record key
... body ...; p>
таблиця = array [1 .. N] of елемент p>
end p>
key =... p>
body =... p>
Час пошуку K/2 p>
Спискові подання: p>
type елемент = record key ... body ...; p>
зв'язок = елемент; p>
procedure вставити (var table: таблиця; var ключ: key; тіло: body) p>
begin p>
if останній> = N then
write ( 'немає місця') else begin p>
останній: = останній 1; p>
table [останній]. key: = ключ; p>
table [останній]. body: = тіло; p>
end; p>
with table [останній] do p>
key: = ключ; p>
body: = тіло; p>
end p>
end p>
Припускаємо, що довжина ключа і тіла одна й та ж. p>
procedure змінити (var table: таблиця; var останній: integer) p>
var i, j: integer; p>
begin p>
table [останній 1]. key: = ключ; p>
i: = 1; p>
while not
(table [i]. key = ключ) do (ця умова
хоча б раз виконується) p>
i: = i +1; p>
if i = останній 1 then
write ( 'немає запису з', ключ)
else table [i]. тіло: = тіло p>
end p>
Операції вставити і змінити мають складність K/2, де К --
кількість записів у таблиці. p>
Procedure Виключити (var table: таблиця; var останній: integer) p>
var i: integer p>
begin (знайти таке i: table [i]. ключ = ключ і видалити цей елемент зі
table) p>
i: = 1;
| Процедура p>
table [останній 1]. ключ: = ключ;
| P>
while
table [i]. ключключ do i: = i +1 (умова інваріантності циклу) | пошуку p>
if i = 1) and (таблиця [i]. ключ> ключ) do
begin p>
таблиця [i +1]. ключ: = таблиця [i]. ключ; p>
таблиця [i +1]. тіло: = таблиця [i]. тіло; p>
i: = i-1 p>
end; p>
таблиця [i]. тіло: = тіло; p>
таблиця [i]. ключ: = ключ p>
end p>
end p>
Складність операції вставки для впорядкованих таблиць зросла. p>
Висновки: p>
1) основна складність
операцій в таблиці - пошук. Для даної - лінійна. P>
2) векторне подання
добре, коли операції видалення та вставки відносно рідкі, а, якщо ж ні,
то перевагу потрібно віддавати списковому поданням. p>
3) Для послідовних
таблиць зниження складності можна досягти за рахунок використання інформації про
зустрічальності ключів. Операцію пошуку можна скоротити за рахунок скорочення довжини
шляхів пошуку. p>
Список літератури h2>
Для підготовки даної роботи були використані матеріали з сайту http://www.ergeal.ru/
p>