Показать сообщение отдельно
Старый 06.06.2004, 11:38     # 92
a_ber
Newbie
 
Регистрация: 25.11.2003
Адрес: Near monitor
Сообщения: 49

a_ber Путь к славе только начался
По поводу матрицы... то решение хранить элементы с координатами, имея в целом здравое ядро, явное школярство... Хранить чтобы хранить, это извините за выражение форма "программного тихо сам с собою "

Есть два типа задач --- прямой рандомальный доступ (если реализован за О(1) то ничего более не надо) и выборка (строки/столбца, например для умножения на вектор, реже чего-либо другого)

Так вот если хранить с координатами то рандомальный доступ О(к-во элементов в матрице), выборка тоже О(к-во элементов в матрице) (тут можно малость оптимизировать это О(к-во элементов в матрице) но несильно)... т.е. если матрица велика, то даже для очень редкой, это немало и соотв. плохо...

Заметно лучше двумерный связный список: выборка строки/столбца/отдельного элемента О(к-во элементов в строке/столбце)... затраты на память: линейно по стороне плюс к-во элементов... Если величина к-во элементов в строке/столбце все еще велика заменить список скип-листом тогда доступ к элементу станет логорифмическим...
a_ber вне форума