<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>