× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 Tri de dates par insertion simple
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
apodogmatik
  Posté le 25/01/2009 @ 15:40 
Aller en bas de la page 
Petit astucien

Bonjour,

Voila j'ai un petit problème, je dois trier un tableau de dates par insertion simple, donc tout d'abord je trie les jours, puis je trierai les mois puis les années. Mais je rencontre un problème déjà pour les jours. Un exemple pour mieux expliquer:

J'ai un tableau ainsi:

23 3 1990

19 4 1988

21 5 1986

Je dois arriver à cela:

19 4 1988

21 5 1986

23 3 1990

Ici je ne trie que les jours, c'est ce que je dois faire pour l'instant... Donc j'ai fait mon programme, il fonctionne mais à partir de 4 dates, il foire ...

Voici mon code :

pa => pointe sur la premiere case du tableau => tab[0][0]

nbel est le nombre de dates que je veux encoder

void tri2(int *pa, int nbel)
{
int j,i;
int tmp[3];

j=0;


while (j<nbel)
{
i=0;
while (i<3)
{
tmp[i]=*(pa+3);
pa++;
i++;
}
pa=pa-3;
i=j;
while (tmp[0]<*(pa) && i>=0)
{
*(pa+3)=*pa;
*(pa+4)=*(pa+1);
*(pa+5)=*(pa+2);
i--;
pa=pa-3;
}
pa=pa+(3);
*pa=tmp[0];
*(pa+1)=tmp[1];
*(pa+2)=tmp[2];
j=j+1;
pa=pa+(3);
}

}

Pour un exemple de ce qui ne va pas :

Je rentre les valeurs suivantes:

23 3 1990

19 4 1988

18 5 1986

21 6 1984

Et il m'affiche cela:

18 5 1986

19 4 1988

23 3 1990

21 6 1984

Voila mon problème, je me suis cassé la tête pour trouver mais en vain ...

Merci d'avance

Publicité
fennec.
 Posté le 27/01/2009 à 14:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

voici un algorithme pour le tri (idéal sur les petits tableaux)

pour les plus grand il prendrai trop de temp, il existe d'autre algorithme de tri

int temp = 0;

for (int i=0;i<tab_lenght; i++) {

for (int j=i+1;j<tab_lenght;j++) {

if (tab[i]>tab[j]) {

temp = tab[i];

tab[i] = tab[j];

tab[j] = temp;

}

}

}

voilà pour le tri. reste plus qu'a adapter pour que sa fonctionne dans ton programme



Modifié par fennec. le 27/01/2009 14:02
don diego
 Posté le 01/02/2009 à 10:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut,

J'ai plusieurs remarques sur ton programme :

1/ Ta variable nbel ne signifie pas grand chose par rapport à la description que tu en fais. nbe pour nombre OK mais pourquoi la lettre l après?

2/ Ensuite, ton tableau tmp a une taille de 3. Pourquoi? De plus, comme par hasard ton prog ne fonctionne pour 4 dates?

3/ Si tu veux trier des dates, commence par les trier par année puis mois puis jour.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
249,35 €Mini PC T-BAO TBOOK MN25 (Ryzen 5 2500U, 8 Go RAM, 256 Go SSD NVME) à 249,35 € avec le code BGFRTBK
Valable jusqu'au 14 Juillet

Banggood propose actuellement le mini PC T-BAO TBOOK MN25 à 249,35 € avec le code promo BGFRTBK. Ce mini PC au format NUC d'Intel possède un processeur Ryzen 5 2500U avec chip graphique Vega 8, 8 Go de RAM DDR4 et un SSD NVME de 256 Go. Il dispose d'une connectique complète : un emplacement 2,5 pouces libre (pour ajouter un disque dur ou un SSD supplémentaire, le WiFi5, le bluetooth 4.1, 4 ports USB 3.0, 2 ports USB 2.0, un port HDMI 2.0, un DisplayPort, un port Ethernet Gigabit et tourne sous Windows 10 que vous pourrez mettre en français. Ce mini PC fait 12,8 x 12,8 x 5 cm et pèse 1,2 kg. Il est livré avec une alimentation européenne. Branchez ce mini PC sur une TV ou un écran et vous avez un ordinateur discret et performant.

Ce marchand sérieux se trouvant en Chine, la livraison peut prendre une vingtaine de jours. Vous pouvez payer par carte bancaire ou par Paypal (conseillé pour bénéficier de la garantie Paypal).


> Voir l'offre
144,80 €Mini PC Acute Angle AA-B4 (Celeron N3450, 8Go RAM, 64Go+SSD 128Go) à 144,80 € avec le code GBCNSJXPC
Valable jusqu'au 11 Juillet

Gearbest fait une promotion sur l'ordinateur Acute Angle AA - B4 qui passe à 144,80 € au lieu de 180 € grâce au code promo GBCNSJXPC. Ce mini PC au design atypique et au corps en bois, intègre un processeur Intel Celeron N3450 (4 coeurs de 1,1 à 2,2 GHz), 8 Go de RAM, un espace de stockage de 64 Go EMMC ainsi qu'un SSD de 128 Go. Il possède également le WiFi5, le Bluetooth 5.0, une prise Ethernet Gigabit, 3 ports USB 3.0, une sortie HDMI. L'ordinateur est livré avec une prise électrique européenne. Il est accompagné de Windows 10 Familial. Avec ce PC, vous pourrez réaliser sans soucis toutes vos tâches courantes : internet, bureautique, multimédia.

Ce marchand sérieux se trouvant en Chine, la livraison peut prendre une quinzaine de jours. Comptez une dizaine d'euros pour la livraison en France et l'assurance pour le transport. Vous pouvez payer par carte bancaire ou par Paypal (conseillé pour bénéficier de la garantie Paypal).


> Voir l'offre
36,99 €Clé USB 3.0 SanDisk Ultra Flair 256 Go à 36,99 €
Valable jusqu'au 12 Juillet

Amazon fait une promotion sur la clé USB 3.0 SanDisk Ultra Flair 256 Go qui passe à 36,99 € livrée gratuitement alors qu'on la trouve ailleurs à plus de 55 €.


> Voir l'offre

Sujets relatifs
programmation simple
Aide pour un programme simple en C++
recherche d'algo convertissant les dates en lettre
code vba simple et pourtant?
Quel est le langage le + simple à apprendre ?
Programme simple
Sélection entre 2 dates sous sql
compilateur java2 ?? ou en trouver de simple
Insertion d'images dans un tableau avec VBA
Insertion d'image
Plus de sujets relatifs à Tri de dates par insertion simple
 > Tous les forums > Forum Autres langages