2019-gate-computer-science-and-it-practice.pdf/Q04-alg2 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Новая страница: « == Вопрос: Q04-alg2-31d68c == <blockquote> Вопрос из «Algorithms Test 2» где-то со страницы 226. Тут вставьте пер…»)
 
 
Строка 1: Строка 1:
 
 
== Вопрос: Q04-alg2-31d68c ==
 
== Вопрос: Q04-alg2-31d68c ==
 +
Пусть дана последовательность ''n'' случайных чисел.
  
<blockquote>
+
Какая будет временная сложность (в наихудшем случае) для нахождения элемента, который встречается больше, чем ''n/2'' раз (если такой элемент существует)?
Вопрос из «Algorithms Test 2» где-то со страницы 226.
+
 
+
Тут вставьте перевод вопроса.
+
Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 возможности разметки],
+
включая формулы и т.п, если будут графы — посмотрите как задать их текстом https://wiki.4intra.net/Graphviz (реально оценю, полезный навык).
+
Если код — теги «code-pascal», «code-c» или «code-python» (не «source lang»).
+
 
+
В IT вообще не принято писать романы, всегда старайтесь писать структурированные (списками-абзацами тексты). Списки в MediaWiki — это просто «*». Не забывайте о них.
+
Преформатированный моноширинный текст — просто отступ.
+
 
+
Старайтесь нетривиальные понятия, особенно незнакомые вам, найти ссылку на википедию и вставить (нейросети лажают!).
+
Это важно, чтобы найти корректный перевод (то, что в википедии, или на худой конец — точно массово гуглится).
+
 
+
Потом конечно сотрите эти инструкции, которые тут курсивом или в блоке цитирования.
+
</blockquote>
+
  
 
=== Ответы ===
 
=== Ответы ===
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
+
* <m>O(n/2)</m>
(префикс «Правильный ответ:» — это дословно, для правильного ответа, неважно, какой он будет в списке)</i>
+
* <m>O(n \log n)</m>
 
+
* <m>O(\log n)</m>
* Правильный ответ: тут реально правильный ответ
+
* Правильный ответ: <m>O(n^2)</m>
* неправильный ответ
+
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
 
+
<i>Если ответы длинные, многострочные, или там графы, используйте
+
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
+
Но такое очень редко встречается, например [[2011-gre-cs-practice-book.pdf/Q05]]. </i>
+
 
+
  
 
=== Объяснение ===
 
=== Объяснение ===
<i>Сначала заполните номер страницы с этим вопросом
+
Официальный ответ у них: Решение состоит в том, чтобы завести два цикла и отслеживать максимальное количество для всех различных элементов. Если максимальное количество становится больше ''n/2'', то циклы завершаются и возвращается элемент с максимальным количеством. Если в конце максимальное количество не превышает ''n/2'', то такой элемент не существует.
{{cstest-source|2019-gate-computer-science-and-it-practice.pdf|тут-номер-страницы-с-вопросом-4|4}}
+
 
+
Если все сделаете правильно, по ссылке выше будет открываться правильная страница в правильном PDFе.
+
 
+
Ну и наконец, вики-разметкой напишите ваше понимание, почему правильный ответ — правильный, а [[2004-gre-cs-practice-book.pdf/Q16|неправильные варианты — неправильны]].
+
Тут тоже могут быть полезны [[2004-gre-cs-practice-book.pdf/Q03|ссылки на википедию]],  
+
решение вами [[2004-gre-cs-practice-book.pdf/Q12|рекуррентных уравнений в sympy]].
+
  
</i>
+
Мысли Стаса: Фиг знает, вроде же легко
 +
* пиромидально или слиянием отсортировать (<m>O(n \log n)</m>),
 +
* потом пробежаться по отсортированному списку, посчитывая в одном счетчике последовательное число элементов (<m>O(n)</m>)
 +
* уложимся в <m>O(n \log n)</m>
 +
* WTF?
  
{{question-ok|}}
+
{{cstest-source|2019-gate-computer-science-and-it-practice.pdf|226|4}}
  
{{reserve-task|[[Участник:StasFomin|StasFomin]] 00:30, 25 декабря 2024 (UTC)}}
+
{{question-ok|[[Участник:StasFomin|StasFomin]] 00:48, 25 декабря 2024 (UTC)}}
  
[[Category:Надо не забыть выбрать тему]]
+
[[Категория:Sorting]]
 +
[[Категория:Разобраться]]

Текущая версия на 00:48, 25 декабря 2024

Вопрос: Q04-alg2-31d68c

Пусть дана последовательность n случайных чисел.

Какая будет временная сложность (в наихудшем случае) для нахождения элемента, который встречается больше, чем n/2 раз (если такой элемент существует)?

Ответы

  • Правильный ответ:

Объяснение

Официальный ответ у них: Решение состоит в том, чтобы завести два цикла и отслеживать максимальное количество для всех различных элементов. Если максимальное количество становится больше n/2, то циклы завершаются и возвращается элемент с максимальным количеством. Если в конце максимальное количество не превышает n/2, то такой элемент не существует.

Мысли Стаса: Фиг знает, вроде же легко

  • пиромидально или слиянием отсортировать (),
  • потом пробежаться по отсортированному списку, посчитывая в одном счетчике последовательное число элементов ()
  • уложимся в
  • WTF?

Исходники — вопрос 4 на 226 странице книги «2019-gate-computer-science-and-it-practice.pdf»