]> git.llucax.com Git - z.facultad/75.06/jacu.git/commitdiff
Fucking olvidada :-D
authorRicardo Markiewicz <gazer.arg@gmail.com>
Sun, 20 Jun 2004 01:02:34 +0000 (01:02 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Sun, 20 Jun 2004 01:02:34 +0000 (01:02 +0000)
otros/blocksorting/bs.h [new file with mode: 0644]

diff --git a/otros/blocksorting/bs.h b/otros/blocksorting/bs.h
new file mode 100644 (file)
index 0000000..b2742c4
--- /dev/null
@@ -0,0 +1,53 @@
+
+#ifndef _BS_H_
+#define _BS_H_
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+typedef struct _bs_data_t_ {
+       unsigned long int pos_inicial;
+       unsigned long int pos_final;
+       unsigned long int pos_orden;
+       char ord; /* indica si esta ordenada */
+} t_BlockSortData;
+
+typedef struct _bs_t_ {
+       t_BlockSortData *array;
+       unsigned long int *ord;
+       unsigned long int len;
+} t_BlockSort;
+
+/** Inicializa un BlockSorting
+ *
+ *  \param len Tamaño de página a utilizar
+ */
+t_BlockSort *bs_create(unsigned long int len);
+
+/** Libera un BlockSorting
+ *
+ *  \param bs BlockSorting previamente inicializado.
+ */
+void bs_destroy(t_BlockSort *bs);
+
+/** Resuelve un BlockSorting
+ *
+ *  \param in Array de bytes que se pretende procesar.
+ *  \param out Array donde guardar la columna resultante.
+ *  \param k Puntero donde guardar la posicion del array original.
+ *  \oaram leido Tamaño de in (por si el tamaño de in es menor al de la pagina).
+ */
+void bs_solve(char *in, char *out, t_BlockSort *bs, unsigned long int *k, unsigned int leido);
+
+/** Obtiene el array original a partir de dst y k
+ *
+ *  \param dst Array donde guardar el array original
+ *  \param c Array generado opr bs_solve.
+ *  \param k Valor retornado por bs_solve.
+ *  \param len Tamaño de c
+ */
+void bs_restore(char *dst, char *c, unsigned long int k, unsigned long int len);
+
+#endif
+