Maak voor elk station een dubbele priority queue:
1) op basis van luchtsnelheid (bovenste is de snelste);
2) op basis van tijd, als er eentje verlopen is zit ie onderin.
Bij het toevoegen van een waarde:
1) Verwijder je alle OUDERE metingen met een LAGERE windsnelheid
2) Dit doe je door queue2 te pollen (laatste waarde verwijderen) tot je bij "jezelf" ben aangekomen
3) All waardes die je in queue2 bent afgelopen, verwijder je uit queue1
4) Peek queue1 (bovenste waarde ALLEEN kijken)
5) Als dit langer als 6 uur geleden is, verwijder hem uit queue1 en queue2 en ga naar stap 4
6) De gepeekte waarde is de snelste windsnelheid.
Met deze methode:
1) Is je geheugen praktisch leeg bij een record snelheid;
2) Worden alle nutteloze waardes direct verwijderd;
3) Hoef je niet te zoeken naar je getallen, ze zitten altijd in de top of de bottom van een queue;
4) Heb je wel een probleem met lookups in de andere queue, je kunt ook het object invalidaten en negeren als je hem tegen komt (kost meer geheugen, maar is sneller) of je moet priority queue en hashmap combineren;
5) Hoef je nooit naar disk te schrijven/lezen.
1) op basis van luchtsnelheid (bovenste is de snelste);
2) op basis van tijd, als er eentje verlopen is zit ie onderin.
Bij het toevoegen van een waarde:
1) Verwijder je alle OUDERE metingen met een LAGERE windsnelheid
2) Dit doe je door queue2 te pollen (laatste waarde verwijderen) tot je bij "jezelf" ben aangekomen
3) All waardes die je in queue2 bent afgelopen, verwijder je uit queue1
4) Peek queue1 (bovenste waarde ALLEEN kijken)
5) Als dit langer als 6 uur geleden is, verwijder hem uit queue1 en queue2 en ga naar stap 4
6) De gepeekte waarde is de snelste windsnelheid.
Met deze methode:
1) Is je geheugen praktisch leeg bij een record snelheid;
2) Worden alle nutteloze waardes direct verwijderd;
3) Hoef je niet te zoeken naar je getallen, ze zitten altijd in de top of de bottom van een queue;
4) Heb je wel een probleem met lookups in de andere queue, je kunt ook het object invalidaten en negeren als je hem tegen komt (kost meer geheugen, maar is sneller) of je moet priority queue en hashmap combineren;
5) Hoef je nooit naar disk te schrijven/lezen.