1

Je recherche des algorithmes de tri sur calto en c en ASM ou en basic avec les différentes méthodes de tri (par bulle ...)
C pour trier des chiffres au fait
Merci d'avance
Sm]i[le
Et mon super site : http://smile.fr.online.fr

2

Euh tu veux les programmer ou tu veux qu'ils soient déjà programmés ?
y en a au moins un dans tigcclib mais je crains que ce ne soit le quicksort (sick), sinon je ne sais pas, enfin à bulles c'est tellement pourri comme algorithme que ça m'étonnerait qu'on le trouve...
Le meilleur algorithme c'est le tri-fusion, c'est pas très dur à faire...
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

3

je voudrais qu'il soit programmé c pour un TIPE c pour comparer différent algorithme de tri
Donc il me faut des pas performants et des performants
Sm]i[le
Et mon super site : http://smile.fr.online.fr

4

bah code les wink
pis les algo de tris, il en existe énormément ... recherche sur google ...

5

Je ne suis pas sûr que tu les trouves 1/ déjà programmés et 2/ sur calculette...
mais tu peux trouver les algorithmes et ce n'est pas dur à programmer toi-même, y a besoin que des notions de base smile
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

6

Voici les méthode de tris qui existe.

Tri par séléction
Tri à bulle
Tri par insertion
Tri par fusion
Tri rapide
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

7

euh geogeo, tu aurais pu mettre : voici certaines des méthodes de tri qui existent... j'espère que tu n'estimes pas avoir *tout* mis neutral
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

8

Sally> Si ces algos sont en C, il ne devrait rien y avoir à changer pour qu'ils fonctionnent sur TI.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

9

ca necessite une compilation, je pense que c ce qu'il voulaire dire

10

Non bien sûr, j'ai un livre là dessus qui parle des algos que je viens de citer et du code fournis avec, Smile tu veux que je recopie tout ici?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

11

arf !
y'en a qui ont du temps à perdre ....
[google]source algo de tri en C[/google]

12

avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

13

Il y a un tri Shell dans TIGCCLIB (fonction qsort - je vous signale que le standard C n'impose nulle part que ce soit un tri rapide, même un tri à bulle est conforme; le standard C++ impose des restrictions sur les temps d'exécution en notation O pour la STL, il n'y a rien de cela dans le standard C).

La voilà (licence TIGCCLIB):
#include <stdlib.h>

// Do not use register a5; callback function might need it.
register long __tbl asm ("a5");

__ATTR_LIB_C__ void qsort(void *list, short num_items, short size, compare_t cmp_func)
{
  unsigned short gap,byte_gap,i,j;                
  char *p,*a,*b,temp;                       
  for (gap=((unsigned short)num_items)>>1; gap>0; gap>>=1)    // Yes, this is not a quicksort,
    {                                                         // but works fast enough...    
      byte_gap=gap*(unsigned short)size;
      for(i=byte_gap; i<((unsigned short)num_items)*(unsigned short)size; i+=size)
        for(p=(char*)list+i-byte_gap; p>=(char*)list; p-= byte_gap)
          {
            a=p; b=p+byte_gap;
            if(cmp_func(a,b)<=0) break;
            for(j=size;j;j--)
              temp=*a, *a++=*b, *b++=temp;
          }
    }
}
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

14

[troll]Bah de toute manière quicksort SUXXXXXXXXX[/troll]
Euh sinon effectivement le tri par tas est aussi bon que le tri fusion (mais le tri fusion a le mérite d'être ultra-simple et de se programmer en moins de 2 mn wink)

là y a des algorithmes bien expliqués (par contre les exemples sont en lisp et pas en C) :
http://dept-info.labri.u-bordeaux.fr/~strandh/Teaching/Programmation-Symbolique/Common/Book/HTML/node241.html
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

15

Le tri fusion n'est pas in-place (enfin, on peut le faire in-place, mais en O(n²)...), donc inutilisable pour qsort. Et le tri par tas, bien qu'optimal asymptotiquement dans le pire des cas, est trop lent dans le cas moyen, et aussi trop gros pour TIGCCLIB. Le tri rapide est aussi trop gros pour TIGCCLIB.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

16

Le tri-fusion n'est pas in-place

Ah oui, je n'avais pas pensé à cette contrainte...
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

17

in-place = ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

18

in-place = ne nécessite pas de buffer dans lequel copier des morceaux du tableau
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

19

Kevin Kofler :
Le tri fusion n'est pas in-place (enfin, on peut le faire in-place, mais en O(n²)...), donc inutilisable pour qsort. Et le tri par tas, bien qu'optimal asymptotiquement dans le pire des cas, est trop lent dans le cas moyen, et aussi trop gros pour TIGCCLIB. Le tri rapide est aussi trop gros pour TIGCCLIB.

Le tris quicksort est en O(n²) dans le cas moyen :/
Tri par tas pawa trilove
avatar
I'm on a boat motherfucker, don't you ever forget

20

Le tris quicksort est en O(n²) dans le cas moyen :/

Pas vraiment, non. C'est juste dans le pire des cas.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

21

Fallait bien que quelqu'un mette du code tout cuit. neutral
void swap(int t[], int m, int n)
{
  int temp = t[m];

  t[m] = t[n];
  t[n] = temp;
}

int partition(int m, int n, int t[])
{
  int v = t[m];
  int i = m-1;
  int j = n+1;

  while (42)
  {
    do
    {
      j--;
    } while (t[j] > v);
    do
    {
      i++;
    } while (t[i] < v);

    if (i<j)
      swap(t, i, j);
    else
      return j;
  }
}

void quicksort(int m, int n, int t[])
{
  if (m<n)
    {
    int p = partition(m,n,t);

    quicksort(m,p,t);
    quicksort(p+1,n,t);
  }
}


J'ai juste choppé ça sur un site, on doit pouvoir faire mieux en n'accédant pas aux élements pas des [] mais bon...
avatar
;)

22

Oui mais, selon Levin et Kolmogorov, le cas moyen est malheureusement le pire cas. (ie dans la vie courante, pour des données courantes, et non pas des données totalement aléatoires comme dans un exercice formel)
avatar
I'm on a boat motherfucker, don't you ever forget

23

Pollux
:
Le tris quicksort est en O(n²) dans le cas moyen :/
Pas vraiment, non. C'est juste dans le pire des cas.

Ça dépend de ce qu'on entend par "cas moyen". En distribution équiprobable, la moyenne est O(n log n). En ce que les informaticiens appellent "distribution uniforme" (pas les mathématiciens! Pour les mathématiciens, "uniforme"="équiprobable"...), c'est en O(n²).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

24

Moumou
: Oui mais, selon Levin et Kolmogorov, le cas moyen est malheureusement le pire cas. (ie dans la vie courante, pour des données courantes, et non pas des données totalement aléatoires comme dans un exercice formel)

Oui, c'est la "distribution uniforme" des informaticiens. Mais sa valeur n'est pas telle que tu la décris. Dans beaucoup de programmes en pratique, le tri rapide performe mieux que le tri par fusion (à condition de prendre le bon pivot - si on sait que les listes sont "presque triées", on ne va pas prendre le dernier élément comme pivot!), donc la distribution ne correspond pas à ce modèle.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

25

Et c'est quoi la "distribution uniforme" dans la "vie courante" ? confus Comment est-ce qu'on peut formaliser qqch de ce style?

(cela dit, je ne conteste pas que le quicksort a pas mal de chances de s'écarter du O(n log n) à cause de l'origine des données à trier)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

26

La probabilité d'apparition d'une séquence s (en binaire) est en 1/2^n(s). Avec n la taille du plus petit programme (ou du plus petit ruban d'une machine de Türing, si tu préfère un résultat très formalisé) permettant d'obtenir la séquence s en output. Ou encore, plus une séquence est "facile à décrire", plus elle est probable.
avatar
I'm on a boat motherfucker, don't you ever forget

27

Sally :
Euh tu veux les programmer ou tu veux qu'ils soient déjà programmés ?
y en a au moins un dans tigcclib mais je crains que ce ne soit le quicksort (sick), sinon je ne sais pas, enfin à bulles c'est tellement pourri comme algorithme que ça m'étonnerait qu'on le trouve... Le meilleur algorithme c'est le tri-fusion, c'est pas très dur à faire...



quicksort, c le tri rapide ? selon les donnees que tu as a trier et le nbre d'elements, il est plus efficace que le tri fusion (O(nlog(n) contre O(n²) (d'apres mes souvenirs hein)), donc arrete un peu ton troll, si tu sais ce que tu manipules, le quicksort peut etre le meilleur des tris classiques
avatar
納 豆パワー!
I becamed a natto!!!1!one!

28

Moumou> et donc, avec cette mesure, on aurait O(n^2) en moyenne? Et ils ont même réussi à prouver que ça dépendait pas de la machine, ou ils l'ont juste démontré pour un codage particulier? (vu comme la décroissance est violente, je pense que le codage n'est pas [a priori] sans importance)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

29

Moumou
: La probabilité d'apparition d'une séquence s (en binaire) est en 1/2^n(s). Avec n la taille du plus petit programme (ou du plus petit ruban d'une machine de Türing, si tu préfère un résultat très formalisé) permettant d'obtenir la séquence s en output. Ou encore, plus une séquence est "facile à décrire", plus elle est probable.

Et cette distribution est une très mauvaise formalisation dans le cas général. Elle ne s'approche de la réalité que pour certaines applications, et pas du tout pour d'autres.
liquid
: quicksort, c le tri rapide ? selon les donnees que tu as a trier et le nbre d'elements, il est plus efficace que le tri fusion (O(nlog(n) contre O(n²) (d'apres mes souvenirs hein))

Tes souvenirs sont mauvais. C'est le tri fusion le plus efficace asymptotiquement dans le pire des cas (O(n log n) contre O(n²)).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

30

j'ai fait ca en projet d'info l'année derniere (c sous borland) donc si tu le veux je te l'envoie