IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algorithme, exercice sur médiane


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Algorithme, exercice sur médiane
    Bonjour, voila j'ai un petit problème sur un algorithme les idées ne me viennent pas, pourriez vous m'aider j'ai un Control demain ?

    Le sujet :

    On considère un ensemble un ensemble d'objet S, sous-ensemble d'un univers U muni d'une relation d'ordre total <=. Soit n = [ |S| / 2], ou |S| est la cardinalité de S. La médiane de S est la valeur intermédiaire de S, c-a-d l'élément x de S qui est plus petit à exactement n éléments de S.

    Question : Ecrire une algo abstrait MED qui permet de trouver la médiane de S. L'algo doit tourner en O(n*logn) dans le pire des cas et doit être en O(1) en espace. Evidemment, trier une représentation de S n'amène pas a la bonne solution.

    Merci d'avance .

  2. #2
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Salut,

    En fait tu cherches un algorithme qui te donne la nième plus petite valeur. Il y a pas mal de littérature sur ça. Par contre je ne comprends pas ta remarque sur le tri. Je suppose que si tu tries et que tu prends la nième valeur le tour est joué en O(n.lg n) temps mais en O(n) espace et là est le problème. Donc il y a une solution : l'algo de la médiane des médianes, il est en O(n) temps et O(1) espace : Linear general selection algorithm - Median of Medians algorithm
    et plus généralement une recherche avec "median of medians algorithm" sur google pour avoir des liens.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut reponse
    On pourrait penser a faire un tri fusion ou autre au debut pour que l'algorithme soit trié et en nlogn , mais vu que l'ensemble d'objet est muni d'une relation d'ordre total <= , je pense que c'est déjà trié, du style :

    S = {1,2,4,4,7,8}

  4. #4
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Si tu dois le faire en O(1) espace, tu ne peux pas garder tous les éléments en mémoire car dans ce cas ton algo serait en O(n) espace minimum.
    Si tu as le droit de le faire en O(n) espace avec un espace supplémentaire en O(1) alors n'importe quel tri en O(n.lg n) temps et O(n) espace convient, l'accès à la médiane étant ensuite en temps constant.
    Rien n'indique que ton S soit trié au départ, c'est U qui est muni d'un ordre total, S n'en est qu'un sous (multi)ensemble.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut reponse
    Merci beaucoup, je vais essayer de comprendre un peu plus

Discussions similaires

  1. exercice sur les matrices
    Par massimo dans le forum MATLAB
    Réponses: 3
    Dernier message: 22/03/2007, 17h20
  2. besoin d aide sur un exercice sur les pointeurs
    Par azumachakib69 dans le forum C
    Réponses: 3
    Dernier message: 28/12/2006, 01h16
  3. Exercice sur les tableaux
    Par IDE dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 06/11/2006, 19h33
  4. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23
  5. Réponses: 4
    Dernier message: 28/07/2005, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo