2011-gre-cs-practice-book.pdf/Q32 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Вопрос: Q32-08c765)
 
(не показано 13 промежуточных версий 1 участника)
Строка 13: Строка 13:
 
Также предполагается, что каждая разрешённая операция стоит единичную стоимость. Каковы наихудшие (в худшем случае) асимптотические временные сложности алгоритмов, решающих эти две задачи?
 
Также предполагается, что каждая разрешённая операция стоит единичную стоимость. Каковы наихудшие (в худшем случае) асимптотические временные сложности алгоритмов, решающих эти две задачи?
  
Ближайшие соседи Самые дальние соседи
+
=== Ответы ===
(A) Θ(nlog⁡n)Θ(nlogn) Θ(n)Θ(n)
+
(B) Θ(nlog⁡n)Θ(nlogn) Θ(nlog⁡n)Θ(nlogn)
+
(C) Θ(n2)Θ(n2) Θ(n)Θ(n)
+
(D) Θ(n2)Θ(n2) Θ(nlog⁡n)Θ(nlogn)
+
(E) Θ(n2)Θ(n2) Θ(n2)Θ(n2)
+
 
<latex>
 
<latex>
 
\begin{center}
 
\begin{center}
Строка 33: Строка 28:
 
</latex>
 
</latex>
  
=== Ответы ===
+
'''Правильный ответ: )'''
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
+
(префикс «Правильный ответ:» — это дословно, для правильного ответа, неважно, какой он будет в списке)</i>
+
 
+
* Правильный ответ: тут реально правильный ответ
+
* неправильный ответ
+
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
 
+
<i>Если ответы длинные, многострочные, или там графы, используйте
+
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
+
Но такое очень редко встречается. </i>
+
 
+
  
 
=== Объяснение ===
 
=== Объяснение ===
<i>Сначала заполните номер страницы с этим вопросом
 
 
{{cstest-source|2011-gre-cs-practice-book.pdf|30|32}}
 
{{cstest-source|2011-gre-cs-practice-book.pdf|30|32}}
  
Если все сделаете правильно, по ссылке выше будет открываться правильная страница в правильном PDFе.
+
Можно сделать следующие наблюдения:
 +
 
 +
* Самые дальние соседи 
 +
*# Нужно найти только глобальный минимум и максимум массива. 
 +
*# Поиск минимума и максимума может быть выполнен за время <m>\( \Theta(n)\)</m> (с одним проходом по массиву). 
 +
*# Таким образом, задача нахождения самых дальних соседей имеет оптимальное худшее время выполнения <m>\( \Theta(n)\)</m>.
  
Ну и наконец, вики-разметкой напишите ваше понимание, почему правильный ответ — правильный, а [[2004-gre-cs-practice-book.pdf/Q16|неправильные варианты — неправильны]].
+
* Ближайшие соседи
Тут тоже могут быть полезны [[2004-gre-cs-practice-book.pdf/Q03|ссылки на википедию]],
+
*# Классический подход состоит в том, чтобы сначала отсортировать массив (за время <m>\( \Theta(n \log n)\)</m>), а затем выполнить один линейный проход по отсортированному массиву, чтобы найти минимальную разницу между соседними элементами (время <m>\(\Theta(n)\)</m>).
решение вами [[2004-gre-cs-practice-book.pdf/Q12|рекуррентных уравнений в sympy]].
+
*# Это дает общее время выполнения <m>\( \Theta(n \log n)\)</m>.
 +
*# В модели сравнения можно доказать, что худший случай с временем <m>\(o(n \log n)\)</m> невозможен.
  
</i>
+
Следовательно, правильный ответ это тот, где для задачи ближайших соседей время составляет <m>\( \Theta(n \log n)\)</m>, а для задачи самых дальних соседей — <m>\( \Theta(n)\)</m>.
  
{{question-ok|}}
+
[[Участник:StasFomin|StasFomin]] 09:58, 9 января 2025 (UTC): {{BadTest}}
{{reserve-task|[[Участник:Nikitashapovalov|Nikitashapovalov]] 19:54, 8 января 2025 (UTC)}}
+

Текущая версия на 09:58, 9 января 2025

Вопрос: Q32-08c765

Ближайшие соседи: Дан неотсортированный массив из чисел с плавающей точкой. Необходимо найти два из них, которые ближе всего друг к другу по значению.

Самые дальние соседи: Дан неотсортированный массив из чисел с плавающей точкой. Необходимо найти два из них, которые дальше всего друг от друга по значению.

Предположим, что разрешены только следующие операции с данными:

  • Сравнение значений двух элементов массива с целью определения большего из них;
  • Сравнение расстояния между двумя элементами массива (абсолютное значение разности между значениями двух элементов) с расстоянием между двумя другими элементами массива;
  • Перестановка двух элементов массива.

Также предполагается, что каждая разрешённая операция стоит единичную стоимость. Каковы наихудшие (в худшем случае) асимптотические временные сложности алгоритмов, решающих эти две задачи?

Ответы

Правильный ответ: (А)

Объяснение

Исходники — вопрос 32 на 30 странице книги «2011-gre-cs-practice-book.pdf»

Можно сделать следующие наблюдения:

  • Самые дальние соседи
    1. Нужно найти только глобальный минимум и максимум массива.
    2. Поиск минимума и максимума может быть выполнен за время (с одним проходом по массиву).
    3. Таким образом, задача нахождения самых дальних соседей имеет оптимальное худшее время выполнения .
  • Ближайшие соседи
    1. Классический подход состоит в том, чтобы сначала отсортировать массив (за время ), а затем выполнить один линейный проход по отсортированному массиву, чтобы найти минимальную разницу между соседними элементами (время ).
    2. Это дает общее время выполнения .
    3. В модели сравнения можно доказать, что худший случай с временем невозможен.

Следовательно, правильный ответ это тот, где для задачи ближайших соседей время составляет , а для задачи самых дальних соседей — .

StasFomin 09:58, 9 января 2025 (UTC):

Посмотрите как оформлять тесты. Нет уже сил обьяснять каждому.