Se si dispone di una enorme quantità di numeri e di un centinaio di computer, Come sarebbe a trovare la mediana dei numeri?Trova una mediana in parallelo
16
A
risposta
17
Utilizzare l'algoritmo di selezione.
- Split la matrice di numero a 100 partizioni.
- Ogni processore deve utilizzare il perno generale di suddividere la matrice a due gruppi (sinistra/destra)
- allora ogni processore dovrebbe inviare le dimensioni di tali 2 gruppi al leader
- il leader dovrebbe calcolare quale gruppo è più piccolo e trasmettere un messaggio per sbarazzarsi di uno di questi gruppi.
- tornare al passo 2 fino a trovare la mediana
questa soluzione ha un tempo di esecuzione media di O (n) al fine di rendere più tempo di esecuzione asintotico di O (n), ogni processore dovrebbe dividere i numeri a gruppi di 5 elementi trovare la mediana di ciascun gruppo (mediante inserzione) e inviare tali mediane indietro al leader, il leader sceglierà la mediana di tali mediane (utilizzando la stessa algo) e che sarà il perno
leggi l'articolo wiki - http://en.wikipedia.org/wiki/Selection_algorithm
Problemi correlati
- 1. Trova mediana in O (1) nell'albero binario
- 2. trova mediana in O (log n)
- 3. Calcolo della mediana in rubino
- 4. Mediana delle medie
- 5. C++ Calcolo efficiente di una mediana in esecuzione
- 6. mediana di liste
- 7. mediana di panda dataframe
- 8. quicksort parallelo in c
- 9. Funzione di aggregazione "mediana" mancante in Django?
- 10. iteratore parallelo in Scala
- 11. Calcolo parallelo in Haskell
- 12. Sottoprocesso Python in parallelo
- 13. parallelo in esecuzione AsyncTask
- 14. trovando mediana di 5 elementi
- 15. Come eseguire una determinata funzione in Bash in parallelo?
- 16. pragma omp parallelo vs. pragma omp parallelo
- 17. OMP parallelo vs. OMP parallelo per
- 18. Ordinamento parallelo parallelo per array numpy
- 19. Prevedi parallelo
- 20. azioni Sequencing IO in parallelo
- 21. Scala Futures non in parallelo
- 22. Unnest multiple array in parallelo
- 23. Python: Compilazione regex in parallelo
- 24. Come eseguire una funzione di Powershell più volte in parallelo
- 25. Come rimuovere valori zero da una matrice in parallelo
- 26. Elaborazione di una grande quantità di dati in parallelo
- 27. Come avviare una lista <Task> in parallelo?
- 28. Eseguire test JUnit in parallelo
- 29. Esecuzione di attività in parallelo
- 30. test Run ScalaTest in parallelo
+1, ma penso che intendevi dire ["algoritmo di selezione"] (http://en.wikipedia.org/wiki/Selection_algorithm), non selezionare l'ordinamento. – interjay
corretto, lo aggiusterò ... grazie! – DuduAlul
@MrOhad, non capisco. Il leader calcola quale gruppo è più piccolo e trasmette un messaggio per sbarazzarsi di uno di questi gruppi? Perché? – Alcott