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