Maksimikekoon lisätään järjestyksessä luvut . Kuinka monta kertaa kahden eri alkion paikkaa vaihdetaan keskenään keossa kyseisen prosessin aikana? Voit olettaa, että on korkeintaan .
Esimerkiksi kun , vaihdot ovat järjestyksessä , , ja , joten vastaus on .
Python
Toteuta tiedostoon maxheap.py
fuktio count
, joka antaa vaihtojen määrän.
def count(n): # TODO if __name__ == "__main__": print(count(4)) # 4 print(count(7)) # 10 print(count(123)) # 618 print(count(999999999)) # 27926258178
Java
Toteuta tiedostoon MaxHeap.java
metodi count
, joka antaa vaihtojen määrän.
public class MaxHeap { public long count(int n) { // TODO } public static void main(String[] args) { MaxHeap m = new MaxHeap(); System.out.println(m.count(4)); // 4 System.out.println(m.count(7)); // 10 System.out.println(m.count(123)); // 618 System.out.println(m.count(999999999)); // 27926258178 } }