Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1661 connectés 

  FORUM HardWare.fr
  Programmation
  C

  quick sort - tri rapide

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

quick sort - tri rapide

n°1561615
marion67
Posté le 17-05-2007 à 15:01:15  profilanswer
 

bonjour, je suis debutante en langage c, je suis en train de me casser la tete sur un programme de tri de tableau, je m'attaque au tri rapide (quick sort ) il y a tjs le meme erreur qui ressort et jarrive pas a trouver pourquoi ... pourriez vous m'aider ?? voila le code :
 

Citation :


#include <stdio.h>
#include <stdlib.h>
 
void swap (int array[], int size, int i,int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
 
void print_array ( int array[], int size) {
int j;
for (j=0;j<size;j++) printf( "  %d", array[j]);
}
 
void quicksort (int array[], int size)
{
qs(array,size,0,size-1);
}
 
void qs (int array[], int size, int i_start, int i_end)
{
int i_pivot;
if(i_start<i_end)
{
   i_pivot=partition(array,size,i_start,i_end);
   qs(array,size,i_start,i_pivot-1);
   qs(array,size,i_pivot+1,i_end);
}
}
 
int partition (int array[], int size, int i_start, int i_end)
{
int pivot=array[i_start];
int i=i_start, j=i_end;
while(1)
{
   while(array[j]>pivot) j--;
   while((array[i]<pivot)||((array[i]==pivot)&&(array[j]==pivot))) i++;
   if (i<j) swap(array,size,i,j);
   else return j;
}
}
 
 int main ()
 {
 int tab[10]={5,9,3,1,7,6,2,5,4,8};
 print_array(tab,10);
 printf("\n" );
 quicksort(tab,10);
 print_array(tab,10);
 printf("\n" );
 return 0;
 }


 
le message d'erreur est le suivant : type mismatch in redeclaration of 'qs'
 
merci

mood
Publicité
Posté le 17-05-2007 à 15:01:15  profilanswer
 

n°1561617
Trap D
Posté le 17-05-2007 à 15:09:40  profilanswer
 

Utilise les balises cpp SVP.
L'rerreur est ici :

Code :
  1. void quicksort (int array[], int size)
  2. {
  3. qs(array,size,0,size-1);
  4. }
  5. void qs (int array[], int size, int i_start, int i_end)
  6. {
  7. int i_pivot;
  8. if(i_start<i_end)
  9. {
  10.    i_pivot=partition(array,size,i_start,i_end);
  11.    qs(array,size,i_start,i_pivot-1);
  12.    qs(array,size,i_pivot+1,i_end);
  13. }
  14. }


Tu parles de la fonction qs, dans la fonction quicksort, comme elle n'est pas déclarée, le compilateur suppose automatiquement qu'elle renvoie un int, alors évidemment comme après tu lui indique qu'elle est de type void, il râle, faut le comprendre.
Déclare ou définis d'abord ta fonction qs et la il sera content.


Message édité par Trap D le 17-05-2007 à 15:10:17
n°1561619
matafan
Posté le 17-05-2007 à 15:13:43  profilanswer
 

Je pense que c'est parce que tu utilises qs avant de la déclarer. Dans ce cas le compilo suppose que la fonction retourne un int. L'appel de ta fonction est donc équivalent à une déclaration implicite : int qs(int[], int, int, int).
 
Un peu plus loin tu as la définition de la fonction, qui fait aussi office de déclaration, mais cette fois avec le prototype : void qs(int[], int, int, int). D'où le message qui t'averti que qs est redéclaré avec un type différent du type de la première déclaration (void au lieu de int).
 
Solution : déclare tes fonctions en début de fichier.
 
Edit : grillé, bien sûr.


Message édité par matafan le 17-05-2007 à 15:14:34
n°1561683
marion67
Posté le 17-05-2007 à 18:14:12  profilanswer
 

oké, merci effectivement ca marche mieu comme ca !! merci beaucoup ! par contre je sais pas ce que c'est les balises ccp ...
 encore merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  quick sort - tri rapide

 

Sujets relatifs
Execution rapide sans charger de pageQuelle requête est la plus rapide?
image qui sort de la pagepg_num_rows ou count(id), le plus rapide ?
[VBA-Excel] Options pour rendre l'ouverture d'un classeur plus rapideBouton qui donne une prase tirée au sort parmi plusieurs enregistrées.
[VBA - Excel] Copie de cellules entre 2 classeurs (moyen plus rapide?)accès le plus rapide à une disquette?
sort hash[RESOLU] question rapide (je pense)
Plus de sujets relatifs à : quick sort - tri rapide


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)