<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Hola a todos, en la uni me pidieron un programa que utilize varios metodos de ordenamiento, ya hice varios pero el quicksort se cuelga y ni idea de el por que he probado cambiar varias funciones y la misma del proceso de quicksort pero sigue sin andar.. una manito no caeria mal, aca esta el codigo de la funcion y las funciones que ahi se usan... gracias por vuestra atencion :-)<br><br><hr id="stopSpelling">struct pers<br>{<br>       unsigned short edad;<br>       char nomb[20];<br>       char apel[20];<br>};<br>/***********************************************/<br>void QuiNomb(pers vector[], short inicio, short fin)<br>{<br>       if(inicio<fin)<br>       {<br>       short pivote1 = procesonomb(vector,inicio,fin);<br>       QuiNomb(vector,inicio,pivote1-1);<br>       QuiNomb(vector,pivote1+1,fin);<br>       }<br>}<br><br>short procesonomb(pers vector[], short inic, short fini)<br>{<br>         pers persaux;<br>         short izq = inic; short der = fini;<br>         pers pivote2;<br>         copiar(pivote2,vector[inic]);<br>         while(izq < der)<br>         {<br>                while(menor(pivote2.nomb,vector[der].nomb)) der--;<br>                while((menor(vector[izq].nomb,pivote2.nomb))&&(izq<der)) izq++;<br>                if(izq<der)<br>                {<br>                       copiar(persaux,vector[der]);<br>                       copiar(vector[der],vector[izq]);<br>                       copiar(vector[izq],persaux);<br>                }<br>         }<br>         copiar(persaux,vector[inic]);<br>         copiar(vector[inic],vector[der]);<br>         copiar(vector[der],persaux);<br>         <br>         return der;<br>}<br><br>/*************************************************/<br>void copiar(pers &prim, pers &seg)<br>{<br>     strcpy(prim.nomb, seg.nomb);<br>     strcpy(prim.apel, seg.apel);<br>     prim.edad = seg.edad;<br>}<br>/*************************************************/<br>bool menor(char pa1[20],char pa2[20])<br>{<br>     short i;<br>     if(strlen(pa1)<=strlen(pa2))<br>     {<br>          for(i=0; i<strlen(pa1); i++)<br>          {<br>               if (pa1[i]<pa2[i]) return true;<br>               if (pa2[i]<pa1[i]) return false;<br>          } if(i==strlen(pa1)) return true;<br>     } else {<br>            for(i=0; i<strlen(pa2); i++)<br>            {<br>                 if (pa1[i]<pa2[i]) return true;<br>                 if (pa2[i]<pa1[i]) return false;<br>            } if(i==strlen(pa2)) return false;<br>       }<br>}  /*previamente me aseguro que las primeras letras sean mayusculas y las demás minusculas..*/<br><br>/*No he querido pasar a memoria dinámica porque de este modo es como se ha venido trabajando en el semestre.. sería mi última opción...*/<br>                                      <br /><hr />Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! <a href='http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us' target='_new'>Try it!</a></body>
</html>