Posez votre question Signaler

[ALGO] trier les entiers nuls pr les ecarter

MAX - Dernière réponse le 12 juin 2006 à 17:20
Salut
J'ai ce problème à resoudre, sachant que je débute en algo
j'ai bien réussi à faire quelques trucs, mais je n'arrive pas à décaler les autres nombres du tableau :

On considère qu'un tableau T contient N nombres entiers positifs ou nuls.
On souhaite récupérer de la place en supprimant tous les éléments nuls du tableau.pour cela, on va prendre le principe suivant:
sans utiliser de tableau supplémentaire, on détecte les éléments nuls du tableau et on récupère leur place en décalant vers le début du tableau tous les autres éléments.
Lire la suite 

[ALGO] trier les entiers nuls pr les ecarter »

15 réponses
Réponse
+0
moins plus
j'ai oublié de mettre merci de votre aide ;)
Ajouter un commentaire
Réponse
+0
moins plus
bah mettons ca donne ca :

entier : tableau[nombre dentiers];
entier : i=0,j=0;

pour j allant de 1 à taille_tableau - 1 faire
si tableau[j] == null alors
pour i allant de j à taille tableau -1 faire
tableau[i]=tableau[i+1];
fin de pour
fin de si
fin de pour

Voila en gros ca donne ca jespère que ca pourra t'aider.

Ajouter un commentaire
Réponse
+0
moins plus
merci de ton aide mais je ne pense pas que cela retire les entires nuls du tableau pour décaler le reste vers la gauche par la suite ... si ?

:d
Ajouter un commentaire
Réponse
+0
moins plus
Ben si puisqu'à chaque fois que l'on trouve un 'null', on lit tout pour décaler...

Il est possible de simplifier en parcourant le tableau une seule fois :

On lit un élément, s'il est 'null' on prend l'élement suivant (que l'on teste, s'il est 'null' on prend le suivant que l'on teste etc etc...) et on le met dans la case 'null' courante, on lit le suivant (que l'on teste etc etc...)...
Ajouter un commentaire
Réponse
+0
moins plus
mais ca ne doit pas tout décaler vers la gauche, ca permet simplement de détecter les entiers nuls mais pas de les enlever du tableau et de décaler le reste !? si ? :d
Ajouter un commentaire
Réponse
+0
moins plus
Non ben non tu comprends bien je t'ai mis une fausse solution !!

Mais oh ca va maintenant la on veut que t'aider et tu fais genre " ah , ca fais ce que je veux?" . Vous vous prenez pour des princesses ou quoi? faut qu'on te fasse tes lacets aussi? et les programmes à ta place?


Déjà va apprendre à faire des algos puisque tu comprends meme pas ce que je t'ai marqué, et puis apprend aussi les bases de la prog tant qu'on n'y est. je m'en fous si ce post est enlevé mais la ca m'enerve !!!!
gloo- 10 juin 2006 à 18:14
ta reponse est tellement excellente qu'elle merite de rester !
:-)
Ajouter un commentaire
Réponse
+0
moins plus
Et puis retirer des entiers nuls du tableau ... ptdr !

Sinon tu fais des alloc dynamique avec le mallo et les pointttterrrrrsssss, ou alors tu prend ce qu'on te donne.
Ajouter un commentaire
Réponse
+0
moins plus
Quel agressivité inutile.

Mes propos sont d'ordres interrogatifs, je suis grand débutant dans l'algo
J'ai bien vu que le code que tu m'as donné était logique (en tout cas pour moi)
De la a dire si il est bon je ne peux le savoir étant novice, tu comprendras pourquoi ces questions.
Ajouter un commentaire
Réponse
+0
moins plus
inutile je suis pas sur. après bah moi je ne réponds plus, jai peur de perdre mon temps à essayer de te donner des solutions. Enfin celle-ci contient une erreur j'avoue.
Ajouter un commentaire
Réponse
+0
moins plus
Tu ne perds absolument pas ton temps vu que tu m'aides a progresser, la preuve.
Merci donc de cette aide, je vais mettre tout ca en forme maitenant

A bientot
Ajouter un commentaire
Réponse
+0
moins plus

pour ameliorer la complexité de parcour sur T de l'algo :

soit un tableaux T indicé de 1 à n,
soit i=1
pour k de 1 à n
si T[k] == 0
alors k recoit k+1
sinon
T[i] recois [k]
i recoit i+1
fin si
fin pour

la nouvelle fin du tableau est la valeur de i-1 en sortie de boucle
(i pointe sur pa premiere case dispo a recevoir une valeure)

principe : on parcour T avec 2 indices, i pour (re)ecrire dans le tableau, et k pour lire toutes les cases en sautant les valeur 0...
gloo- 10 juin 2006 à 18:29
je debute sur ce forum et je vois que les espaces en debut de lignes sont bouffés... pas pratique pour indenter....

soit un tableaux T indicé de 1 à n,
soit i=1
pour k de 1 à n
__si T[k] == 0
__alors k recoit k+1
__sinon
____T[i] recois [k]
____i recoit i+1
__fin si
fin pour
blux- 12 juin 2006 à 09:01
Salut,

si tu veux l'indentation, sélectionne ton code et au-dessus de la fenêtre de saisie, tu cliques sur Code, il va te mettre deux balises et tu retouveras tes espaces...
Ajouter un commentaire
Réponse
+0
moins plus
hmmm
Ajouter un commentaire
Ce document intitulé « [ALGO] trier les entiers nuls pr les ecarter » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?