Fenêtre coulissante en Python

Vaibhhav Khetarpal 14 avril 2022
Fenêtre coulissante en Python

À tout moment, toute fenêtre pouvant être considérée comme un sous-ensemble d’une structure de données particulière donnée est appelée fenêtre glissante. La taille de la fenêtre détermine le nombre d’éléments que ce sous-ensemble contiendrait.

Ce didacticiel traite de la fenêtre glissante et montre comment l’implémenter en Python.

La raison principale de l’utilisation d’une fenêtre glissante est qu’elle réduit la complexité temporelle. Il se spécialise dans la résolution des problèmes résolus en utilisant la méthode de la force brute à un rythme encore plus rapide.

Une fenêtre coulissante peut être utile dans des tâches de codage simples et des tâches énormes et avancées telles que le traitement d’images numériques et la détection d’objets. Cependant, cet article se concentrera sur un domaine simple pour vous aider à comprendre la fenêtre coulissante et son utilisation.

Pour mieux expliquer cela, nous allons prendre un exemple de problème, puis implémenter une fenêtre glissante sur celui-ci. Pour cet article, nous prenons le problème suivant :

Soit un tableau de nombres de taille x. trouver un sous-tableau de taille de fenêtre k ayant une somme maximale.

Entrée : x =[12,11,10,23,55,45,15,28], k=3.

Maintenant, nous allons appliquer une fenêtre glissante pour résoudre ce problème.

n = int(input("enter size of array "))
print("enter arrays elements")
a = list(map(int, input().split()))
k = int(input("enter the size of subarray "))
ms = -(10 ** 6)
ws = sum(a[:k])
for i in range(n - k):
    ms = max(ms, ws)
    ws = ws - a[i] + a[i + k]
ms = max(ms, ws)
print("subarray of size {} with maximum sum as {}".format(k, ms))

Le code ci-dessus fournit la sortie suivante :

enter size of array 8
enter arrays elements
12 11 10 23 55 45 15 28
enter the size of subarray 3
subarray of size 3 with maximum sum as 123
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Article connexe - Python Array