Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: xBurninGx en 14 Noviembre 2011, 09:17 AM
BlackZeroX la cuestión es ahorrar espacio.. con tu implementación por lo que entiendo, cada dato supone 8 B, 64 bits, siendo necesario nada más que un bit.. me sale más rentable la matriz de char que por lo menos cada dato me supone 1B..
Cita de: BlackZeroX (Astaroth) en 14 Noviembre 2011, 07:50 AM.
De manera MASIVA TODOS los elementos de tu matrix OCUPAN TODOS LOS BITS?... si solo ocupan algunos (Pero siempre dejan desocupados uno o mas bits pues usa esos bits como tu campo de flags, pero esto seria muy cochino)..
Cita de: Unbr0ken en 13 Noviembre 2011, 21:16 PM
me provoca asco VB.
Cita de: Unbr0ken en 13 Noviembre 2011, 21:16 PM
Pues la solución es revisar las rutas antes de compilar/depurar/bindear.
typedef struct StructData
{
unsigned int uVal;
char cChar;
} STRUCTDATA, *PSTRUCTDATA;
printf("SizeOf(STRUCTDATA) = %d\n", sizeof(STRUCTDATA));
typedef struct StructData
{
unsigned int uVal;
int iFlags;
} STRUCTDATA, *PSTRUCTDATA;
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 99
Debug.Print numRandom(1, 3)
Next
End Sub
Private Sub lSwap(ByRef l1 As Long, ByRef l2 As Long)
' // Intercambia el contenido de las variables.
l2 = l2 Xor l1
l1 = l1 Xor l2
l2 = l2 Xor l1
End Sub
Private Function fixNumbers(ByRef lMin As Long, ByRef lMax As Long) As Boolean
' // Corrige los valores dados.
If lMax < lMin Then
Call lSwap(lMin, lMax)
fixNumbers = True
End If
End Function
Private Function numRandom(ByVal lMin As Long, ByVal lMax As Long) As Long
' // Genera un Numero aleatorio de acuerdo a un rango dado.
Call fixNumbers(lMin, lMax)
Call Randomize
numRandom = (lMin - lMax) * Rnd + lMax
End Function
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 99
Debug.Print numRandom(1, 3)
Next
End Sub
Private Sub lSwap(ByRef l1 As Long, ByRef l2 As Long)
' // Intercambia el contenido de las variables.
l2 = l2 Xor l1
l1 = l1 Xor l2
l2 = l2 Xor l1
End Sub
Private Function fixNumbers(ByRef lMin As Long, ByRef lMax As Long) As Boolean
' // Corrige los valores dados.
If lMax < lMin Then
Call lSwap(lMin, lMax)
fixNumbers = True
End If
End Function
Private Function numRandom(ByVal lMin As Long, ByVal lMax As Long) As Long
' // Genera un Numero aleatorio de acuerdo a un rango dado.
Call fixNumbers(lMin, lMax)
Call Randomize
numRandom = (lMin - lMax) * Rnd + lMax
End Function
Cita de: DickGumshoe en 13 Noviembre 2011, 20:37 PM
También he sacado la fórmula de
a=a+b
b=a-b
a=a-b
inline void swap(void* pv1, void* pv2) {
*((int*)pv1) ^= *((int*)pv2);
*((int*)pv2) ^= *((int*)pv1);
*((int*)pv1) ^= *((int*)pv2);
}
#define swap(pv1,pv2) pv1 ^= pv2; pv2 ^= pv1; pv1 ^= pv2;
Cita de: David_RM en 10 Noviembre 2011, 18:29 PM
Necesito hacer un código que haga la busqueda binaria de un array no ordenado. Entiendo el código usual pero a la hora de discriminar entre los dos sub-arrays no se muy bien que hacer.
Cita de: David_RM en 13 Noviembre 2011, 11:55 AM
Igual no es busquedad binaria, el algoritmo ya lo explique anteriormente