Accueil > > > ALGORITHME DE TRI D'UN TABLEAU PAR ORDRE CROISSANT OU DÉCROISSANT.
ALGORITHME DE TRI D'UN TABLEAU PAR ORDRE CROISSANT OU DÉCROISSANT.
Information sur la source
Description
Bonjour, Le code source que je vais présenter est simple mais on y pense pas tout le temps. Il classe un tableau par ordre décroissant (ou croissant avec une petite modification). Il utilise un algorithme très simple que j'ai sorti de ma tête mais si il doit probablement déjà exister.
Source
- #include <stdio.h>
- #include <stdlib.h>
-
- void tri(int* tabl,int longueur);
- int changer_pos(int *tabl1, int *tabl2);
-
- int main()
- {
- int n;
- int* numbers;
- int _i;
-
- scanf("%d\n", &n);
- numbers = calloc(n, sizeof(int));
- for(_i = 0; _i < n; ++_i)
- scanf("%d", &numbers[_i]);
-
-
-
- tri(numbers,n);
-
- for(_i=0;_i<n;++_i)
- printf("%d ",numbers[_i]);
-
- free(numbers);
-
- return 0;
- }
-
-
- void tri(int* tabl,int longueur)
- {
- int i, _i;
- for(_i=0;_i<longueur;++_i)
- {
- for(i=0;i<longueur-1;i++)
- {
- if(tabl[i] > tabl[i+1])
- {
- changer_pos(&tabl[i],&tabl[i+1]);
- }
- }
- }
- }
-
- int changer_pos(int *tabl1, int *tabl2)
- {
- int inter = 0;
-
- inter = *tabl1;
- *tabl1 = *tabl2;
- *tabl2 = inter;
- }
#include <stdio.h>
#include <stdlib.h>
void tri(int* tabl,int longueur);
int changer_pos(int *tabl1, int *tabl2);
int main()
{
int n;
int* numbers;
int _i;
scanf("%d\n", &n);
numbers = calloc(n, sizeof(int));
for(_i = 0; _i < n; ++_i)
scanf("%d", &numbers[_i]);
tri(numbers,n);
for(_i=0;_i<n;++_i)
printf("%d ",numbers[_i]);
free(numbers);
return 0;
}
void tri(int* tabl,int longueur)
{
int i, _i;
for(_i=0;_i<longueur;++_i)
{
for(i=0;i<longueur-1;i++)
{
if(tabl[i] > tabl[i+1])
{
changer_pos(&tabl[i],&tabl[i+1]);
}
}
}
}
int changer_pos(int *tabl1, int *tabl2)
{
int inter = 0;
inter = *tabl1;
*tabl1 = *tabl2;
*tabl2 = inter;
}
Conclusion
UTILISATION :
On rentre le nombre de données que nous allons entrer, puis on entre ces données qui vont ensuite être triées par ordre croissant.
PRINCIPE :
On compare le nombre de position i dans un tableau avec le nombre de position i+1 excepté si i est égal au nombre de donnés entrées dans le tableau. Si le nombre de position i est plus grand, rien ne se passe, si c'est le contraire, ces deux nombres échangent leur position grâce à la fonction changer_pos(). Ces étapes se répètent autant de fois qu'il y a de nombres entrés.
REMARQUES :
On peut trier les nombres par ordre croissant en modifiant simplement le "if(tabl[i] < tabl[i+1])" en "if(tabl[i] > tabl[i+1])" On peut inclure les nombres à virgule flottante (double) en modifiant la ligne de déclaration du tableau (remplacer int par double);
Voilà, j'espère que je vous ai aidé un peu et n'hésitez pas si vous avez une remarque ou un commentaire. Informatiquement, Thüzhen.
Historique
- 13 mars 2010 22:32:50 :
- Ajout d'une remarque sur les virgules correction de fautes syntaxiques.
- 14 mars 2010 11:26:10 :
- Allocation dynamique corrigée.
Suppression d'une condition inutile
- 14 mars 2010 17:51:22 :
- Libération de la mémoire empruntée par le tableau.
Changement de position d'une boucle.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Questions urgentes en Algorithme et Complexité [ par nostalgieing ]
bonjour j'ai une ambiguté en algorithme et complexité et j'ai quelques questions à poser et j'ai besoin de vos aide c'est urgent 1-quelle est la met
tri de tableau de structure [ par samhmi ]
Je veux trier un tableau de structure selon le degre décroissant tel que chaque case est de structure suivantestruct sommet{ int degré; int arc[
Tri décroissant de tableau [ par enoitnaillal ]
Bonjour, J’ai trouvé une variante de sort() : std ::sort (tb.begin(), tb.end(), std ::greater ()); permettant du faire un tri décroissant, (je travail
Algorithme de groupage [ par MoknineMoknine ]
Bonjour: je un tableau de nombre real. je veut un algorithme ou méthode pour regrouper ces nombres telque chaque groupe doit contenir les nombres qui
TABLEAU de STRUCTURE [ par timy94 ]
Bonjour Comment en C faire un tableau de pointeur pointant sur des structures.dans le but de trier ce tableau ex "tab.nom" en modifiant les adresses
algorithme de tri hoare [ par alinformatik ]
au cours des travaux pratiques en module de système d'exploitation, pour comprendre la synchronisation des processus sous linux on nous a demandé d'éc
algorithme [ par petitlapino ]
Salut tout le monde, j'ai un exercice qui demande de calculer la somme d'un tableau en c++ deux à deux par exemple t[1]=2 t[2]=5 t[3]=3 t[4]=9 t[5]=6
Tri appliqué à un tableau à 2 dimensions basé sur la 2nde dimension [ par Askirkela ]
Bonjour à tous. Premièrement, j'espère que ce message est au bon endroit (qui m'a parut le plus logique, bien que l'algorithmique soit de mise). Deuxi
Algorithmes de tri [ par goutu ]
Bonsoir, je fait une étude sur les différents algorithmes de tri, j'en ai réécrit plusieurs, en m'inspirant de certains messages de ce site. J'ai appr
Complexité de l'algorithme de Tri Fusion [ par ousin ]
Salut tout le monde, je voudrais de l'aide pour demontrer mathematiquement en urilisant la resolution des reccurences que la complexité du Tri Fusion
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|