Почему два различных понятия оба называют "кучей"?

Для извлечения основных данных я шел бы для Linq без колебания.

Начиная с перемещения в Linq я нашел следующие преимущества:

  1. Отладка моего DAL никогда не была легче.
  2. безопасность Времени компиляции, когда Ваша схема изменяется, является бесценной.
  3. Развертывание легче, потому что все компилируется в DLL. Более руководящие сценарии развертывания.
  4. , поскольку Linq может поддерживать запросы чего-либо, что реализует интерфейс IQueryable, Вы будете в состоянии использовать тот же синтаксис для запросов XML, Объектов и любого другого источника данных, не имея необходимость изучать новый синтаксис
143
задан Rob Kennedy 9 November 2009 в 07:17
поделиться

6 ответов

Дональд Кнут говорит (Искусство компьютерного программирования, третье изд., Том 1, стр. 435):

Примерно в 1975 году несколько авторов начали называть пул доступной памяти " куча »

Он не говорит, каких авторов и не дает ссылок на какие-либо конкретные статьи, но говорит, что использование термина« куча »в отношении очередей с приоритетом является традиционным смыслом этого слова.

67
ответ дан 23 November 2019 в 23:01
поделиться

У них одинаковое имя, но на самом деле они не похожи (даже концептуально). Куча памяти называется кучей так же, как вы называете корзину для белья «кучей одежды». Это имя используется для обозначения беспорядочного места, где память может быть выделена и освобождена по желанию. Структура данных (как указывает ссылка в Википедии, на которую вы ссылаетесь) совершенно иная.

54
ответ дан 23 November 2019 в 23:01
поделиться

Столкновение имен прискорбно, но не настолько загадочно. Куча - это небольшое обычное слово, используемое для обозначения кучи, коллекции, группы и т. Д. Использование слова для структуры данных предшествует (я почти уверен) имени пула объем памяти. На самом деле, на мой взгляд, пул был бы гораздо лучшим выбором для последнего. Куча означает вертикальную структуру (например, стопку), которая соответствует структуре данных, но не пулу памяти. Мы не думаем о куче пула памяти как об иерархической, в то время как фундаментальная идея, лежащая в основе структуры данных, заключается в сохранении самого большого элемента наверху кучи (и подкуч).

Куча, структура данных восходит к середина 60-х годов; куча пула памяти, начало 70-х. Термин «куча» (означающий «пул памяти») использовался по крайней мере еще в 1971 г. Вейнгарденом при обсуждении Algol.

Возможно, самое раннее использование кучи в качестве структуры данных было обнаружено семью годами ранее в
Уильямс, JWJ 1964. «Алгоритм 232 - Heapsort», Связь ACM 7 (6): 347-348

30
ответ дан 23 November 2019 в 23:01
поделиться

На самом деле, чтение о том, как распределяется память (см. Buddy Blocks ), напоминает мне о куче в структурах данных.

6
ответ дан 23 November 2019 в 23:01
поделиться

ИМО, это просто случайность / совпадение, что эти две совершенно не связанные между собой вещи имеют одно и то же имя. Это как график и график .

5
ответ дан 23 November 2019 в 23:01
поделиться

Возможно, первая реализованная куча памяти управлялась структурой кучи?

-2
ответ дан 23 November 2019 в 23:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: