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

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

Версия 22:32, 8 января 2025

Вопрос: Q32-08c765

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

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

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

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

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

Ответы

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


Объяснение

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

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

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

Следовательно, правильный ответ это тот, где для задачи ближайших соседей время составляет \( \Theta(n \log n)\), а для задачи самых дальних соседей — \( \Theta(n)\), что соответствует:

(A) для ближайших соседей и для самых дальних соседей.

Задача зарезервирована: Nikitashapovalov 19:54, 8 января 2025 (UTC)