Изменения

Перейти к: навигация, поиск

Мажорирующий элемент

96 байт добавлено, 03:12, 26 мая 2013
Псевдокод
// candidates - словарь, где ключ - стоящий элемент,
// значение - количество таких стоящих элементов
'''for ''' i = 0 '''to ''' N - 1 '''if ''' candidates.containsKey(a[i]) // нашли стоящий элемент
candidates[a[i]]++ // увеличим счетчик
'''else''' '''if ''' candidates.size() < K - 1 // полная группа не образована
candidates[a[i]] = 1 // добавим элемент в группу
'''else ''' // образовалась полная группа '''for ''' element '''in ''' candidates // посадим группу
candidates[element]--
'''if ''' candidates[element] == 0 // если никто с таким элементом не стоит
candidates.remove(element) // удалим этот элемент
'''for ''' candidate '''in ''' candidates // проверим, встречается ли элемент N / K раз
count = 0
'''for ''' i = 0 '''to ''' N - 1 '''if ''' a[i] == candidate
count++
'''if ''' count > N / K
elements.add(element)
'''return ''' candidates
=== Доказательство ===
174
правки

Навигация