Skip to content

Realization of sort and search algorithms described in D. Knut book "The Art of Computer Programming", Volume 3 and 4A (by C# language means). Реализация алгоритмов поиска и сортировки, описанных в книге Д. Кнута "Искусство программирования", том 3 и 4А, средствами языка С#.

License

Notifications You must be signed in to change notification settings

AlexSozd/KnutAlgorCSharpSols

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KnutAlgorCSharpSols (English)

Realization of sort and search algorithms described in Chapter 6 of Donald Knut book "The Art of Computer Programming", Volume 3 (by C# language means).

  • Sequential searching in ordered table (marked as Algorithm T in the Section 6.1)
  • Tree search and insertion (6.2.2T)
  • Tree deletion (6.2.2D)
  • Balanced tree search and insertion (6.2.3A)
  • Trie search (6.3T)
  • Digital tree search and insertion (6.3D)

Unordered or ordered table of records

The record of unordered or ordered table is reflected by the struct type with two fields – integer number key which is used for identification – and real number (floating-point number with double precision, double type) exp_value that is the record query probability. Values of the concrete instance are initialized by the constructor call; all fields are available only for reading through the properties Key и Probability respectively.

The three records’ lists in which query probability values follow different distributions (geometric with p=q=0.5, binomial with p=q=0.5 and wedge-shaped ones) were firstly generated and written (serialized) by supporting program (the SearchandSort1 solution, the Task1_1 project) into binary files for reading and usage after ordering through the Cocktail shaker sort execution by the main one (access control program, the Task1 project).

Tape/self-organizing file

The record at the tape or in self-organizing file was initially reflected by the struct type with two fields – identification integer number key which is used for sorting – and symbolic string val that is the value of the record. Then there were two fields added for reading and searching operation execution – fields position and byte_length which contains the position in file and the byte length of the record respectively; all fields are available only for reading through the properties. All this values was firstly generated and written by supporting programs (the SearchandSort1 solution, the Task2 and Task2_1 project) into the text file – links’ file – for reading and usage by the main one (the SearchandSort1 solution, the Task3_1 project).

Tree search and insertion algorithms (in binary, n-ary and balanced trees) with deletion ones were applied to links’ files construction and redaction (the SearchandSort2, SearchandSort3 and SearchandSort4 solutions).

KnutAlgorCSharpSols (Русский)

Реализация алгоритмов поиска и сортировки, описанных в главе 6, том 3 книги Д. Кнута "Искусство программирования", средствами языка С#.

  • Последовательный поиск в упорядоченной таблице (обозначен как алгоритм T в разделе 6.1)
  • Поиск по дереву со вставкой (6.2.2T)
  • Удаление из дерева (6.2.2D)
  • Поиск со вставкой по сбалансированному дереву (6.2.3A)
  • Лучевой поиск (6.3T)
  • Цифровой поиск со вставкой по дереву (6.3D)

Таблицы записей (с разными распределениями вероятности запроса)

Запись (record) в неупорядоченной или упорядоченной таблице/массиве представлена структурой (тип struct) с двумя полями – идентификационным целочисленным ключом key и вещественным числом (числом с плавающей точкой двойной точности, тип double) exp_value, представляющим собой вероятность запроса записи. Значения в конкретном экземпляре задаются через конструктор структуры; поля доступны только для чтения через свойства Key и Probability соответственно.

Для проверки корректности реализации алгоритма были сгенерированы и записаны (сериализованы) вспомогательной программой (проект Task1_1) в бинарные файлы три списка (list) записей, вероятности запроса в которых подчиняется одному из распределений (геометрическое с p=q=0.5, биномиальное с p=q=0.5 и клиновидное). Перед выполнением поиска/вставки программой управления доступом (проект Task1) проводится упорядочивание скопированного из файла списка посредством выполнения шейкер-сортировки по значению вероятности запроса.

Лента с неравными записями / самоорганизующийся файл

Запись (record) на ленте или в самоорганизующемся файле изначально была представлена структурой (тип struct) с двумя полями – целочисленным ключом key, являющийся идентификатором и по значению которого и проводится сортировка, и символьной строкой val, являющейся значением записи. Потом для облегчения процедур чтения и поиска блоков были добавлены поля position и byte_length для хранения и применения значений позиции в файле и длины в битах для каждой записи соответственно; все поля доступны только для чтения через свойства. Все сведения о записях изначально составлялись и записывались посредством вспомогательных программ (проекты Task2 и Task2_1) в текстовый файл – файл ссылок – для выполнения последующих операций.

Алгоритмы поиска со вставкой по дереву (бинарному, n-арному и сбалансированному) и удаления из дерева были применены к построению, чтению и редактированию файла ссылок (SearchandSort2, SearchandSort3 и SearchandSort4).

About

Realization of sort and search algorithms described in D. Knut book "The Art of Computer Programming", Volume 3 and 4A (by C# language means). Реализация алгоритмов поиска и сортировки, описанных в книге Д. Кнута "Искусство программирования", том 3 и 4А, средствами языка С#.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy