glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: tri dans l'ordre croissant Dim 24 Oct 2010 - 12:07 | |
| voici un script que j'ai fait pour le faire en C++ : - Code:
-
ntruc=0 while(ntruc<argument0) { for(i=0;i<argument0;i+=1) { if argument1[i]>argument1[i+1] { vari=argument1[i] argument1[i]=argument1[i+1] argument1[i+1]=vari } else ntruc+=1 } if ntruc ntruc=0 //screen_redraw() //sleep(100) } return argument1 argument0 : le nombre de valeur dans le tableau argument1 : le tableau de valeur voici l'exemple : Download ordre croissantr.gmket en C++ (pour ce que ca interresse) - Code:
-
int *tri_bulle(int num,int* tab) { int step=0; int var=0; while (step { for(int i=0;i { if (tab[i]>tab[i+1]) { var=tab[i]; tab[i]=tab[i+1]; tab[i+1]=var; } else step++; } if (step step=0; } return tab; } num : nombre de valeur dans le tableau (int) tab : le pointeur du tableau de valeur (il faut qu'il soit allouer !) (int *) tri_bulle parce que cette methode s'appelle le tri en bulle. En revenche, je rapelle que le script GML que j'ai fait ne sert a rien car les listes sont faites pour ca, voici le proceder avec les listes : créez la liste dans Create - Code:
-
list=ds_list_create() ajouter des valeurs avec - Code:
-
ds_list_add(list,valeur) et pour les remettre dans l'ordre : - Code:
-
ds_list_sort(list,1)//1 : ordre croissant; 0 : ordre décroissant reprennez les valeurs : - Code:
-
valeur=ds_list_find_value(list,i) et enfin detruisez la liste avec - Code:
-
ds_list_destroy(list) et si on reprend mon script et qu'on inclus les listes, voila ce que ca donne : - Code:
-
list=ds_list_create() for(i=0;i<num;i+=1) { ds_list_add(list,tab[i]) } ds_list_sort(list,1) for(i=0;i<nwin;i+=1) { tabreturn[i]=ds_list_find_value(list,i) } ds_list_destroy(list) return tabreturn; num=nombre de valeur tab=tableau de depart tabreturn=tableau de retour
Dernière édition par gabin49 le Dim 24 Oct 2010 - 23:59, édité 1 fois |
|
Mass *Excellent utilisateur*
Messages : 3351 Localisation : Dans une canonnière wookie. Projet Actuel : Monter des trucs et des machins
| Sujet: Re: tri dans l'ordre croissant Dim 24 Oct 2010 - 23:02 | |
| jveux pas te casser, mais avec une liste ça supprime le besoin d'indiquer le nombre de valeur, et la fonction ds_list_sort fait tout le travail |
|
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: tri dans l'ordre croissant Dim 24 Oct 2010 - 23:49 | |
| mais en C++ ? De base, li n'y a pas de liste, j'ai fait le script uniquement pour le C++. En GML, il faut evidement utiliser les listes. Elles sont plus rapide et c'est deja inclus dans GM. Je vais mettre un script dans le topic pour cela |
|
Contenu sponsorisé
| Sujet: Re: tri dans l'ordre croissant | |
| |
|