Что такое CS определение массива Php? - PullRequest
2 голосов
/ 27 января 2009

С точки зрения строгой реализации и компьютерных наук, как бы вы классифицировали структуру данных массива Php? Это ассоциативный массив? хэш? словарь? ...?

Ответы [ 4 ]

8 голосов
/ 27 января 2009

Из руководства по PHP :

Массив в PHP на самом деле является упорядоченным карта. Карта - это тип, который связывает значения для ключей. Этот тип оптимизирован для нескольких различных целей; может быть обрабатывается как массив, список (вектор), хэш-таблица (реализация карта), словарь, коллекция, стек, очередь, а возможно и больше.

3 голосов
/ 27 января 2009

Ну, это зависит от того, как вы хотите классифицировать его. Я бы выбрал классификацию по выполнению операций.

Например, истинный массив в терминах Computer Science имеет время поиска O (1), а связанный список имеет время поиска O (n). Вставка и удаление - это O (1) в связанном списке, а O (n) - в массиве.

Я не уверен, какова реальная производительность массива PHP, но если вы измерите несколько элементарных операций над ними и сравните их с тем, что ожидается от «истинных структур данных Computer Science», вы сможете классифицировать их .

1 голос
/ 27 января 2009

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

0 голосов
/ 27 января 2009

Это зависит от того, что вы хотите определить на самом деле. словарь или map относится к поведению типа данных, в то время как hashmap относится к конкретной реализации данного документа. Термин массив немного окрашен - Строго говоря, он относится к конкретной реализации, тогда как список - это общий термин, который относится к любому типу данных, подобному массиву. Однако в качестве синонима для list .

довольно часто используется array .
...