Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование

Максимальное ускорение алгоритма поиска

Браслет светоотражающий, самофиксирующийся, желтый.
Изготовлены из влагостойкого и грязестойкого материала, сохраняющего свои свойства в любых погодных условиях. Легкость крепления позволяет
66 руб
Раздел: Прочее
Наклейки для поощрения "Смайлики 2".
Набор для поощрения на самоклеящейся бумаге. Формат 95х160 мм.
19 руб
Раздел: Наклейки для оценивания, поощрения
Горшок торфяной для цветов.
Рекомендуются для выращивания крупной рассады различных овощных и цветочных, а также для укоренения саженцев декоративных, плодовых и
7 руб
Раздел: Горшки, ящики для рассады

Дмитрий Сахань Временные затраты алгоритма поиска ощутимо чувствуются при обработке больших объемов информации. Если производится поиск DWORD-числа среди набора (массива) таких же значений, то самым оптимальным и скоростным будет последовательное сравнение заданного значения со всеми элементами массива до обнаружения совпадения. Однако для поиска строк или некоторых объектов, когда данные представлены в виде достаточно большого набора байт, дела обстоят иначе. Строка или содержимое объекта - это не DWORD-значение, и сравнивать приходится побайтно все содержимое до первого различия или полного совпадения. Как раз это и съедает основную часть затраченного на поиск времени. Но программисты быстро вычислили, как усовершенствовать алгоритм поиска, чтобы он не тратил лишнее время. Суть заключалась в том, чтобы сначала сравнивать длины искомой и анализируемой строк (для объектов - размеры их содержимого). Различие в длинах/размерах точно свидетельствует о разнице содержимого строк/объектов, поэтому нет смысла тратить время на побайтное сравнение их содержимого. И только при совпадении длин выполняется "медлительный" код сравнения содержимого. Вот как выглядит простой алгоритм сравнения. Есть глобальный массив M с некими строками, есть входная строковая переменная S с текстом искомой строки, и нужно найти такую же строку в массиве M. Пример утрированный и просто показывает, что на самом деле выполняется при сравнении строк (ведь программист просто написал бы код if s = m he вместо указанных мной строк с if . he ). var m: array of A siS ri g; procedure Fi d(s: A siS ri g); var i: I eger; begi for i = 1 o Le g h(m) do if Длина(s) = Длина(m) he нашли строку в m; e d; Однако такое усовершенствование подразумевает ускорение только при разных длинах расположенных в массиве строк. Уже при расположении в массиве свыше 100 тысяч строк эффективность сравнения "длина-содержимое" начинает снижаться, так как массив заполняется большим количеством одинаковых по длинам строк. И чем больше располагать в массиве строк, тем менее эффективным становится данное усовершенствование. Но самое неприятное для этого метода сравнения начинается, когда в силу каких-то обстоятельств или заранее заданных условий в массиве располагаются одинаковые по длинам строки/объекты. Тогда сравнение приходится вести только по содержимому, а сравнение длин оказывается лишней операцией. При огромных объемах информации падение производительности очень большое. Здесь нужно либо использовать производный (от данного) алгоритм поиска, либо написать более универсальный алгоритм. Программистам хорошо известно, что универсальность редко сочетается с производительностью. И все же хочу предложить свою идею, поскольку она хорошо сочетает универсальность с производительностью. Для начала хочу упомянуть, что длинные строки (A siS ri g) располагаются в памяти вместе с длиной строки. Получив адрес строки, затем отняв от него 4 байта, вы попадаете на адрес длины строки. Рассказываю это для системных программистов, так как программистов на Delphi, Visual Basic и C мало интересует, как там хранятся и сравниваются строки или массивы.

Реализовав новый алгоритм на ассемблере, вы получите универсальную и быструю функцию поиска. Так вот, поле длины строки всегда задано типом DWord (4 байта). В общем случае то же относится и к байтовым массивам. Плохо, что в стандарт "длина-содержимое" сложно внедрить еще одно DWORD-поле, поэтому придется делать как-то иначе. Суть моего предложения состоит в том, чтобы расположить перед длиной строки еще одно DWORD-поле. Для удобства назовем его "Контрольный код содержимого". Установка содержимого любой строки включает в себя: вычисление контрольного кода, установку длины строки и ее содержимого. Вычисление контрольного кода выполняется как побайтное сложение всех байт содержимого строки в DWORD-сумму. Новый алгоритм поиска включает в себя дополнительное сравнение - сначала сравниваются контрольные коды содержимого двух строк, при их совпадении сравниваются длины строк, и при совпадении длин сравнивается содержимое строк. Формально алгоритм поиска принимает такой вид (для наглядности я вывел тип ewS ri g, чтобы вы видели, что работа ведется с измененным типом строки). ype ewS ri g = packed record CRC: DWord; ex : A siS ri g; e d; var m: array of ewS ri g; procedure Fi d(s: ewS ri g); var i: I eger; begi for i = 1 o Le g h(m) do if s.CRC = m. ex ) he if Содержимое(s. ex ) = Содержимое(m; e d; На первый взгляд кажется, что дополнительное сравнение прибавит к времени поиска еще лишнее время, но на деле это не так. Контрольный код позволяет с большой долей вероятности определять не равные строки, даже не прибегая к анализу их длин. Смысл в том, что одинаковые строки дадут одинаковый контрольный код. Но за любую универсальность приходится расплачиваться определенными исключениями, когда нововведение вместо пользы приносит лишние затраты. А любое нововведение хорошо только в том случае, если его "закономерные" затраты меньше затрат без него. И здесь новшество с контрольным кодом справляется самым лучшим образом. Дело в том, что контрольный код может быть одинаковым у заведомо разных строк. Объясню это на примере. Допустим, мы сравниваем строку "вот так" со строкой "так вот". Контрольный код у них будет одинаковый, так как в обеих строках имеются те же самые символы. Алгоритм с контрольным кодом сравнит контрольные коды строк, затем длины строк, затем первый символ строк и найдет различие. Обычный алгоритм сравнит длины строк, а затем первый символ строк и также найдет различие. Выигрыш обычного алгоритма составит одно лишнее DWORD-сравнение алгоритма с контрольным кодом. В кризисных ситуациях (те самые исключения) алгоритм с контрольным кодом несет с собой самые минимальные затраты в виде лишнего DWORD-сравнения. А теперь посмотрим, насколько превосходит алгоритм с контрольным кодом в "тяжелых" случаях сравнения. Допустим, мы сравниваем строку "Какие восхитительные цветы" со строкой "Какие восхитительные цвета". Обычный алгоритм обнаружит различие в строках, когда дойдет до сравнения последнего символа строк, в то время как алгоритм с контрольным кодом обнаружит различие уже в результате сравнения контрольных кодов строк. Выигрыш измеряется отсутствием значительного количества лишних операций.

Теряя минимум в своих кризисных ситуациях, алгоритм с контрольным кодом дает максимум производительности в кризисных местах алгоритма-соперника. Новый алгоритм поднимает производительность поиска на порядок. При обработке сверхвысоких объемов информации такой алгоритм может оказать неоценимую услугу, высвобождая из времени поиска весомую его долю.

Профессионалы внешней разведки НКВД не могли не понимать ценности информации, получаемой от группы Шульце-Бойзена. Недаром информация «Старшины» немедленно передавалась Сталину. Александр Коротков обычно получал материалы Шульце-Бойзена через Харнака — в шифровке, поступившей в Москву вчера, 14 марта 1941 г., так и указывалось — «Агентурное сообщение „Корсиканца“ по сведениям, полученным источником от референта штаба германской авиации Шульце-Бойзена…» Но вот сегодня, 15 марта 1941 г., в Берлин неожиданно пришло указание Центра — минуя Харнака, установить прямую связь с Шульце-Бойзеном. Прямая связь с агентом, да еще с офицером люфтваффе, находящемся в эти дни уже на казарменном положении, чрезвычайно осложняла миссию Короткова и делала ее опасной для обоих — и для советского разведчика, и для немецкого патриота. Но Москва шла на риск. К середине марта 1941 г. подготовка нападения Германии на Советский Союз уже не вызывала сомнений, и это требовало максимального ускорения передачи информации, особенно из такого важного источника как штаб люфтваффе

1. Алгоритмы поиска в тексте

2. Алгоритмы поиска подстроки в строке

3. Алгоритмы поиска кратчайших покрытий булевых матриц

4. Варианты алгоритма возведения в степень: повышение точности и ускорение

5. Алгоритмы сортировки, поиска кратчайшего пути в графе и поиска покрытия, близкого к кратчайшему

6. Структура и алгоритмы работы спутниковых радионавигационных систем
7. Поиск внеземных цивилизаций
8. Поиск и исследование внеземных форм жизни. Планетарный карантин, необходимый при этом

9. Генетические алгоритмы

10. В поисках идеального оружия

11. Поиск и разведка нефтяных и газовый месторождений

12. Поиск культурных корней Американцев (Looking for cultural roots of Americans)

13. Поиски истины по роману Булгакова "Мастер и Маргарита"

14. Бургундия в поисках самоидентификации (1363-1477 гг.)

15. Управление потоками данных в параллельных алгоритмах вычислительной линейной алгебры

16. Межкультурная коммуникация в электронной среде и поиск информации в сети Интернет

Развивающая игра "Учимся считать".
"Учимся считать" - это развивающая игрушка для детей в возрасте от 3-х лет. Игра поможет ребёнку выучить цифры от 1 до 5 и
549 руб
Раздел: Счетные наборы, веера
Точилка электрическая Attache Selection, 220 В.
Точилка электрическая. Работает от сети 220 В. Оснащена большим контейнером для стружки и отделением для карандаша. Предназначена для
2037 руб
Раздел: Точилки
Карандаши цветные, 24 цвета.
Цветные карандаши заточенные. Количество цветов: 24.
324 руб
Раздел: 13-24 цвета

17. Максимальная скорость мобильного Интернета в сетях GPRS, Wi-Fi, CDMA

18. Информационные потоки в ЭВМ. Алгоритм работы процессора

19. Алгоритмы сортировки

20. Разработка алгоритмов и программ выполнения операций над последовательными и связанными представлениями структур данных

21. Циклические алгоритмы

22. VB, MS Access, VC++, Delphi, Builder C++ принципы(технология), алгоритмы программирования
23. Алгоритм создания базы данных складского учета
24. Компьютерный файлово-загрузочный полиморфный стелс-вирус ONEHALF 3544, особенности алгоритма и методы борьбы с ним

25. Применение метода частотных диаграмм к исследованиям устойчивости систем с логическими алгоритмами управления

26. Алгоритм компактного хранения и решения СЛАУ высокого порядка

27. Поиск клик в графах

28. Применение алгоритма RSA для шифрования потоков данных

29. Транспортные сети. Задача о максимальном потоке в сети

30. Методы поиска и исследований в преподавании физики

31. Патентный поиск на тему: "Современная оснастка станка" по курсу "Основы научной деятельности"

32. Межкультурная коммуникация в электронной среде и поиск информации в сети Интернет

Сковорода литая с антипригарным покрытием, 26 см.
Сковорода со съемной ручкой и стеклянной крышкой, утолщенное дно. Диаметр: 260 мм. Высота: 60 мм.
1738 руб
Раздел: Сковороды с антипригарным покрытием
Коврик LUBBY для ванны "Африка".
Коврик надежно крепится ко дну ванны присосками, что минимизирует вероятность скольжения. На мягкую рельефную поверхность очень приятно
619 руб
Раздел: Коврики
Дырокол для люверсов на 30 листов, серебристый.
Дырокол в металлическом корпусе, предназначенный для установки люверсов. Перфорирует одновременно до 30 листов бумаги. Диаметр
630 руб
Раздел: Дыроколы

33. Методы и алгоритмы компоновки, размещения и трассировки печатных плат

34. Женщина и Мужчина в поисках гармонии. Анализ гендерных стереотипов

35. Определение угловых скоростей и угловых ускорений звеньев механизма манипулятора по заданному движению рабочей точки

36. Человек в поисках смысла жизни

37. Оптимальный поиск переносного компьютера (ноутбука) на рынке

38. Поиск места расположения предприятия
39. Иван Грозный: поиск альтернативных путей социально-политического развития Руси
40. В поисках "исторического Валентина"

41. Сравнительный анализ нейросетевых реализаций алгоритмов распознавания образов

42. В поисках жанра (Новые книги об авторской песне)

43. Андерграунд вечен – как вечны новации и поиск

44. Духовный поиск Андрея Платонова

45. Культура и экономика: поиски взаимосвязей

46. Поиски альтернативы преступному состоянию мира в романе Ф. М. Достоевского «Преступление и наказание»

47. Нравственный и художественный поиск современной литературы

48. Духовный поиск героев В. М. Шукшина

Планшет для пастелей "Сладкие грезы", А3, 18 листов.
Планшет для пастелей замечательно подходит для художественных техник, таких как пастель, масляная пастель, мел, карандаш или уголь,
420 руб
Раздел: Папки для акварелей, рисования
Багетная рама "Mia" (серебро), 30х40 см.
Багетные рамы предназначены для оформления картин, вышивок и фотографий. Оформленное изделие всегда становится более выразительным и
450 руб
Раздел: Размер 30x40
Ящик для игрушек "Кристалл".
Универсальные ящики «Кристалл «M» помогут рационально использовать пространство, сэкономят место в доме и помогут поддерживать идеальный
535 руб
Раздел: Более 10 литров

49. Поиски смысла жизни молодыми людьми начала XIX века

50. Проблемы поиска смысла жизни в романе Пушкина "Евгений Онегин"

51. Проблема поиска истины в одном из произведений русской литературы

52. Поиски идеального героя (по рассказу «Чудик»)

53. Нормальные Алгоритмы Маркова. Построение алгоритмов из алгоритмов.

54. Структуры данных и алгоритмы
55. Алгоритм компактного хранения и решения СЛАУ высокого порядка
56. Нечетко-логические модели и алгоритмы

57. Сравнительный анализ алгоритмов построения выпуклой оболочки на плоскости

58. Единый алгоритм эволюции вселенной

59. Алгоритмы декомпозиции и перебора L-классов для решения некоторых задач размещения

60. Некоторые алгоритмы реализации UPSCALING

61. Роль максимальной андрогенной блокады в лечении больных раком предстательной железы

62. Принципы и особенности составления лекарственных алгоритмов

63. Алгоритм иммуногематологического исследования женщин во время беременности

64. Алгоритмы выполнения манипуляций

Глобус детский зоогеографический, с подсветкой, 210 мм.
Глобус Земли зоогеографический для детей, с подсветкой. Диаметр: 210 мм. Материал: пластик.
845 руб
Раздел: Глобусы
Настольная игра "Loonacy".
Loonacy (Лунаси) – очень забавная и веселая игра, в которой победит тот, что проворнее и внимательнее. Суть игры заключается в том, чтобы
490 руб
Раздел: Карточные игры
Горшок дорожный и насадка на унитаз "HandyPotty", голубой.
Складной дорожный горшок HandyPotty. Он может заменить сразу три аксессуара: привычный ребенку и его родителям горшок, дорожный горшок для
1160 руб
Раздел: Прочие

65. Единый алгоритм успешных продаж

66. Адроны, очарованные мезоны и поиски кварк-глюонной плазмы

67. В поисках пятой силы

68. Алгоритм выживания для науки

69. Определение поверхностного натяжения методом максимального давления в газовом пузырьке

70. В поисках определения термина «информация»
71. Способ устойчивого решения неустойчивых задач и его алгоритм
72. Алгоритм возникновения и развития международных конфликтов и возможные пути их решения

73. В поисках радости

74. Алгоритм определения перечня специальных квалификационных характеристик (компетентностей)

75. Усилитель мощности системы поиска нелинейностей

76. Алгоритмы трассировки

77. Партизаны капитала. Максимальный результат при минимальных затратах

78. Вот где задача зарыта! Алгоритм постановки задач рекламной кампании

79. В поисках легендарной Трои

80. Пространство и время: в поисках "естественной онтологии" знания

Домик для кукол "Коттедж Конфетти".
Игрушка собирается ребёнком с помощью взрослого и предназначена для игры с куклами высотой до 30 см. В наборе: стена с окнами - 8 штук,
4433 руб
Раздел: Для мини-кукол и мини-пупсов
Защитные шторки для автомобиля на присосках Chicco Safe "Паравозик", с сумкой в комплекте, 2.
Предназначены для автомобиля, они защитят вашего малыша от солнечных лучей и перегрева. Крепятся к стеклу присосками. Рисунок в виде
880 руб
Раздел: Прочее
Магнит "FIFA 2018. Забивака с флагом".
Магнит с символикой чемпионата мира FIFA 2018. Материал: ПВХ.
301 руб
Раздел: Брелоки, магниты, сувениры

81. Измерение ускорения свободного падения

82. Алгоритм решения обратной задачи вихретокового контроля (ВТК)

83. Измерение ускорения свободного падения

84. Технология ускоренного обучения плаванию

85. Развитие максимальной силы с помощью изометрических упражнений в тренировке волейболистов I-II спортивных разрядов

86. В поисках "глобального синтеза"
87. Милетская школа. Поиски первоначала
88. Поиски движущих сил общественного развития

89. Поиск новых философских парадигм в России и на Западе на рубеже XIX - XX и XX - XXI веков

90. Поиски альтернативных хладагентов

91. Алгоритм работы процессора

92. В поисках "хорошего лесопользования"

93. Историческая экология: между повседневностью и вечностью, или поиск решений на перекрестке проблем

94. Рискология. Методы верификации информации: сопоставительный анализ, метод поиска противоречий

95. Генетичні алгоритми в СППР

96. СППР фінансового аналізу на базі алгоритмів нечіткої логіки

Этажерка для обуви разборная, 4 полки, 660x280x700 мм.
Модель предназначена для хранения обуви в прихожей. Она придется особенно кстати, если у вас малогабаритная квартира: она займет минимум
1102 руб
Раздел: Полки напольные, стеллажи
Стрейч-пленка для ручной упаковки, вес 1 кг, 17 мкм, 45 см x 140 метров.
Прозрачная стрейч-пленка для ручной упаковки применяется в быту, на производстве, в офисе, магазине. Изготовлена из прочного полиэтилена,
351 руб
Раздел: Плёнка пищевая
Бутылочка для кормления "Avent Classic+", 260 мл (голубая, рисунок: краб), от 1 месяца.
Ограниченная серия -бутылочка для кормления голубая c рисунком (краб), Classic+. Зарекомендовавшая себя серия Classic была улучшена:
403 руб
Раздел: Бутылочки

97. Поиски оснований морали

98. Модернизация и глобализация: поиски поля равновесия

99. В поисках скрытой нежности


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.