A voir également:
- Matlab - ranger des nombres croissants
- Code binaire des nombres - Guide
- Ranger par ordre alphabétique excel - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Musique / Radio / Clip
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum LibreOffice / OpenOffice
- Nombres faciles - Télécharger - Outils professionnels
5 réponses
en fait je voulais voir aussi si il était possible de trouver cette fonction "sort" dans le logiciel lui même, dans les dossiers
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
16 nov. 2009 à 20:09
16 nov. 2009 à 20:09
t uveux dire, voir le code de "sort" ? je ne crois pas car les fonctions matlab sont "compilées".
Néanmoins un tri est simplement un algorithme, ensuite i lfaut adapter au langage.
Tu as plein de manières très classiques de faire des tri (c.f wikipéia sur Tri).
En gros ça consiste surtout en des boucles ou alors des fonctions "récursives dans l'âme" pour les plus performantes.
Les meilleures manières :
Quick Sort (tri rapide) - très rapide, plutôt compliqué à comprendre, récursif en général
Merge Sort (tri fusion) - plutot simple et très rapide
Shell sort
Bubble sort (tri "bulle") - à éviter absolument car tout pourri. Mais correct et très simple.
Je suppose, mais je ne suis pas sûr, que Matlab implémente un Quick Sort. Pour en être sûr c.f. l'aide, en général ils indiquent la méthode utilisée dans leurs algorithmes.
Sinon voici une manière simple :
Tu as un deuxième tableau avec que des 0.
Pour chaque indice du tableau : tu cherches dans le premier le minimum, et ensuite tu copies ce minimum dans ta première case. Tu remplaces le minimum dans l'ancien tableau par un nombre très grand comme Inf (pour pas qu'on retombe dessus en cherchant le min après). Ensuite tu boucles : tu cherches le min dans le premier et tu le copies dans la deuxième case, etc...
Néanmoins un tri est simplement un algorithme, ensuite i lfaut adapter au langage.
Tu as plein de manières très classiques de faire des tri (c.f wikipéia sur Tri).
En gros ça consiste surtout en des boucles ou alors des fonctions "récursives dans l'âme" pour les plus performantes.
Les meilleures manières :
Quick Sort (tri rapide) - très rapide, plutôt compliqué à comprendre, récursif en général
Merge Sort (tri fusion) - plutot simple et très rapide
Shell sort
Bubble sort (tri "bulle") - à éviter absolument car tout pourri. Mais correct et très simple.
Je suppose, mais je ne suis pas sûr, que Matlab implémente un Quick Sort. Pour en être sûr c.f. l'aide, en général ils indiquent la méthode utilisée dans leurs algorithmes.
Sinon voici une manière simple :
Tu as un deuxième tableau avec que des 0.
Pour chaque indice du tableau : tu cherches dans le premier le minimum, et ensuite tu copies ce minimum dans ta première case. Tu remplaces le minimum dans l'ancien tableau par un nombre très grand comme Inf (pour pas qu'on retombe dessus en cherchant le min après). Ensuite tu boucles : tu cherches le min dans le premier et tu le copies dans la deuxième case, etc...
ben en fait j'y avais penser a cette idée. Seulement ce que j'aimerais moi c'est la situation suivante:
dans le premier tableau, il prend le premier nombre et le range dans le 2ème tableau, puis, on s'occupe du 2ème nombre dans le premier tableau.
Si il est plus petit > on le repositionne en position 1
Si il est plus grand > il va a la position suivante
Seulement je ne vois pas comment ordonner tout ca
dans le premier tableau, il prend le premier nombre et le range dans le 2ème tableau, puis, on s'occupe du 2ème nombre dans le premier tableau.
Si il est plus petit > on le repositionne en position 1
Si il est plus grand > il va a la position suivante
Seulement je ne vois pas comment ordonner tout ca
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
16 nov. 2009 à 23:07
16 nov. 2009 à 23:07
c'est possible, mais ça demande le fait de recréer tout le tableau lorsqu'il faut "décaler" tous les éléments pour repositionner l'élément trouvé.
ou éventuellement tu pourrais utiliser une matrice de permutation (plus ou moins) :
la matrice A :
0 0 0 0 0
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
1 0 0 1 0
décale tous les éléments d'un vecteur x vers le bas lorsqu'on fait A * x et mets 0 à la première place.
Mais bon je ne sais pas si c'est plus simple que de rechercher les minimums à chaque fois et de les mettre simplement à la suite
Il y a vraiment de très nombreuses manières faire tout ça.
ou éventuellement tu pourrais utiliser une matrice de permutation (plus ou moins) :
la matrice A :
0 0 0 0 0
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
1 0 0 1 0
décale tous les éléments d'un vecteur x vers le bas lorsqu'on fait A * x et mets 0 à la première place.
Mais bon je ne sais pas si c'est plus simple que de rechercher les minimums à chaque fois et de les mettre simplement à la suite
Il y a vraiment de très nombreuses manières faire tout ça.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question