Почему quicksort используется на практике? [закрытый]

Умм, если вам нужен только адрес электронной почты или имя с uid, попробуйте что-нибудь с backtick, который позволяет создавать шаблонные литералы, заключенные в символ обратной галочки () вместо двойных или одинарных кавычек, например

var uid = firebase.auth().currentUser.uid;
firebase.database().ref().child(`${user.email}-${uid}`).set({

    email: user.email,
    userId: user_Id_of_the_user,
    phoneNumber: phone_Number_Of_TheUser
  });

или

var uid = firebase.auth().currentUser.uid;
firebase.database().ref().child(`${user.name}-${uid}`).set({

    email: user.email,
    userId: user_Id_of_the_user,
    phoneNumber: phone_Number_Of_TheUser
  });
9
задан templatetypedef 16 January 2013 в 00:28
поделиться

5 ответов

Вы не должны концентрироваться только на худшем случае и только на сложности времени. Это' больше о среднем, чем о худшем, и о времени и пространства.

Быстрая сортировка:

  • имеет среднюю сложность времени time ( n log n );
  • могут быть реализованы с пространственной сложностью Θ (log n );

Также следует учитывать, что большая запись O не учитывает какие-либо константы, но на практике она делает Разница, если алгоритм в несколько раз быстрее. Θ ( n log n ) означает, что алгоритм выполняется в K n log ( n ), где К является постоянной величиной. Быстрая сортировка - это алгоритм сортировки сравнения с самым низким значением K .

  • может быть реализовано с пространственной сложностью Θ (log n );
  • Также следует учитывать, что большая запись O не учитывает какие-либо константы, но на практике это имеет значение, если алгоритм в несколько раз быстрее. Θ ( n log n ) означает, что алгоритм выполняется в K n log ( n ), где К является постоянной величиной. Быстрая сортировка - это алгоритм сортировки сравнения с самым низким значением K .

  • может быть реализовано с пространственной сложностью Θ (log n );
  • Также следует учитывать, что большая запись O не учитывает какие-либо константы, но на практике это имеет значение, если алгоритм в несколько раз быстрее. Θ ( n log n ) означает, что алгоритм выполняется в K n log ( n ), где К является постоянной величиной. Быстрая сортировка - это алгоритм сортировки сравнения с самым низким значением K .

    где K является постоянной величиной. Быстрая сортировка - это алгоритм сортировки сравнения с самым низким значением K .

    где K является постоянной величиной. Быстрая сортировка - это алгоритм сортировки сравнения с самым низким значением K .

    25
    ответ дан 4 December 2019 в 06:17
    поделиться

    Средний асимптотический порядок быстрой сортировки составляет O (nlogn) , и он обычно более эффективен, чем из-за heapsort на меньшие постоянные (более плотные петли). Фактически, существует теоретический алгоритм выбора линейного медианного времени, который вы можете использовать, чтобы всегда находить лучший поворот, что приводит к наихудшему случаю O (nlogn) . Однако обычная быстрая сортировка обычно выполняется быстрее, чем теоретическая.

    Чтобы сделать это более разумным, рассмотрим вероятность того, что быстрая сортировка завершится через O (n 2 ) . Это просто 1 / n! , что означает, что он почти никогда не столкнется с таким плохим случаем.

    7
    ответ дан 4 December 2019 в 06:17
    поделиться

    Потому что, в общем случае, это один из самых быстрых алгоритмов сортировки.

    1
    ответ дан 4 December 2019 в 06:17
    поделиться

    Потому что в среднем это самый быстрый вид сравнения (с точки зрения прошедшего времени).

    1
    ответ дан 4 December 2019 в 06:17
    поделиться

    Возможно, стоит отметить, что C имеет библиотечную функцию qsort () , но нет требования, чтобы он был реализован с использованием фактической быстрой сортировки, которая зависит от поставщика компилятора.

    0
    ответ дан 4 December 2019 в 06:17
    поделиться
    Другие вопросы по тегам:

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