
Reordenar puntero por partes en c
Publicado por Ángel (19 intervenciones) el 23/01/2018 16:50:03
Buenas a todos tengo un problemilla en c a la hora de reordenar un puntero que guarda enteros, el problema es el siguiente:
Quiero ordenar ese vector una vez que lo he rellenado del todo, y lo tengo que hacer por partes, es decir, si el tamaño del vector es 100, tengo que ordenar de la 0 a la 63 y guardarlo ordenado en el mismo puntero, de la 64 a la 70 y guardarlo en el mismo puntero...
estoy usando qsort(&vector_posicion_apariciones[indice_posicion],vector_apariciones[d],sizeof(int),cmpfunc);
en vector apariciones tengo cada cuanto tengo que ordenar, e indice posicion lo uso como acumulador para saber por donde voy en el puntero, tengo esto:
No me funciona, no se si podria hacerlo de otra forma o si se puede hacer lo que quiero.
1
2
int *vector_posicion_apariciones;
vector_posicion_apariciones=calloc(numero_total_apariciones,sizeof(int));
Quiero ordenar ese vector una vez que lo he rellenado del todo, y lo tengo que hacer por partes, es decir, si el tamaño del vector es 100, tengo que ordenar de la 0 a la 63 y guardarlo ordenado en el mismo puntero, de la 64 a la 70 y guardarlo en el mismo puntero...
estoy usando qsort(&vector_posicion_apariciones[indice_posicion],vector_apariciones[d],sizeof(int),cmpfunc);
en vector apariciones tengo cada cuanto tengo que ordenar, e indice posicion lo uso como acumulador para saber por donde voy en el puntero, tengo esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int cmpfunc (const void * a, const void * b) {
return ( *(int*)a - *(int*)b );
}
int indice_posicion=0;
for(int d=0;d<numero_contraseñas;d++){
qsort(&vector_posicion_apariciones[indice_posicion],vector_apariciones[d],sizeof(int),cmpfunc);
if (vector_apariciones[d]==0)
indice_posicion++;
else{
indice_posicion+=vector_apariciones[d];
}
}
No me funciona, no se si podria hacerlo de otra forma o si se puede hacer lo que quiero.
Valora esta pregunta


0