Создание quicksort с php

Добавление к предыдущим ответам того факта, что MS SQL Server добавляет поддержку графической архитектуры, начиная с 2017 года .

Следует описанному шаблону с таблицами Nodes и Edges (которые должны быть созданы со специальными ключевыми словами «AS NODE» и «AS EDGE»). Node and edge tables structure

В него также введено новое ключевое слово MATCH «для поддержки сопоставления с образцом и прохождения по графу», как это (Friend - это имя edge . ] в приведенном ниже примере):

SELECT Person2.name AS FriendName
FROM Person Person1, friend, Person Person2
WHERE MATCH(Person1-(friend)->Person2)
AND Person1.name = 'Alice';

Существует также очень хороший набор статей о базах данных графиков SQL Server на Redgate Hub .

7
задан alex 5 September 2011 в 14:18
поделиться

4 ответа

Из http://php.net/sort

Примечание: Как и большинство сортировок PHP функции sort () использует реализация »Quicksort.

Основные функции PHP будут реализованы на языке c, а не PHP, поэтому они должны быть значительно быстрее, чем все, что вы можете написать самостоятельно на PHP. Будут случаи, когда быстрее написать свой собственный, но я предполагаю, что это будут случаи, когда у вас есть очень конкретный случай, и вы можете сделать свои собственные конкретные оптимизации для этого. Я думаю, что здесь это вряд ли.

26
ответ дан 6 December 2019 в 04:48
поделиться

Используйте встроенную функцию сортировки. Быстрая сортировка - это простой алгоритм, но для получения хорошей производительности на компьютерах, которые фактически используются, требуется немного тонкости. Более чем вероятно, что встроенная функция уже более оптимизирована, чем все, что вы могли бы написать за разумный промежуток времени. (Ускорение с постоянным коэффициентом от написания на C вместо PHP также, вероятно, полезно.)

Если вы сортируете так много элементов, что функция сортировки замедляет работу, вы, вероятно, делаете что-то не так. (В конце концов, это PHP. Вы должны использовать язык общего назначения для обработки больших объемов данных. Вам будет проще написать код, и он будет работать быстрее.)

5
ответ дан 6 December 2019 в 04:48
поделиться

Фактически я сделал это для точки данных в презентации, которую собираю. Тест сортирует массив из 250 000 целых чисел, используя встроенную функцию сортировки и реализацию алгоритма быстрой сортировки, написанного на php. Содержимое массива абсолютно одинаково для обоих прогонов, данные рандомизированы, а указанное время предназначено только для выполнения сортировки, а не для другой обработки, необходимой для вызова интерпретатора php.

Результаты:

  Native sort implementation:  1.379 seconds
PHP quicksort implementation: 30.615 seconds

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

Результаты для других языков, которые я тестировал в тех же условиях, используя ту же реализацию на том же оборудовании и в той же ОС, обеспечивают интересное сравнение производительности и позволяют увидеть результат PHP в перспективе:

               C: 0.107 seconds
            Java: 0.250 seconds
JavaScript (FF3): 4.401 seconds

В частности,

17
ответ дан 6 December 2019 в 04:48
поделиться

Для справки здесь есть реализация PHP:

https://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting/Quicksort#PHP

4
ответ дан 6 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

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