Algorithme efficace pour le calcul de la plus rapide sur la distance de l'intervalle de

0

La question

Je voudrais savoir si il y a de tout algorithme efficace des recommandations, qui sont rapides et ne pas consommer trop de ressources, pour le calcul de la manière la plus rapide de l'intervalle de distance dans une séquence de données. En d'autres termes un algorithme qui retourne le minimum de temps sur un intervalle de n mètres, à partir d'un ensemble de données.

Par exemple:

Entrée

  • data_list: [{distance: 0, temps:0},{distance: 1 m, temps:2},{distance: 4 m, temps:4s}...{distance:10000m, temps: 3600s}]
  • distance_interval: 345m

Sortie

  • fastest_interval_start_distance: 7655 m
  • fastest_interval_end_distance: 8000 m
  • fastest_interval_time: les n secondes

Merci

algorithm
2021-11-23 23:52:19
1

La meilleure réponse

0

J'ai créé la solution suivante qui a une complexité en temps de O(n). Avec l'aide de memoization pour éviter de recalculer les données qui ont déjà été parcourus.

Il fonctionne avec un min de l'indice de max et les index qui sont associées avec le minimum de temps.

  1. min index commence à l'indice 0, le temps 0, et fastest_interval_start_distance 0
  2. max indice est attribué dès que distance_interval est atteint et fastest_interval_end_distance contient la valeur de la distance à l'indice
  3. la somme de la différence de temps entre les éléments de données sont stockées dans fastest_interval_time
  4. min index et max indice de commencer à aller de l'avant à mesure que la distance augmente avec chaque élément de données.
  5. Si la somme des différences de temps entre le min et le max est de moins de fastest_interval_time, le courant de sortie est mis à jour, y compris fastest_interval_start_distance et fastest_interval_end_distance et fastest_interval_time
  6. Les cas limites sont lorsque l'ensemble de données est vide ou distance_interval est plus grande que la distance totale. Merci!!!!
2021-11-24 02:13:06

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................