Autor Tema: Algoritmos de búsqueda dentro de una memoria EEPROM  (Leído 880 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Algoritmos de búsqueda dentro de una memoria EEPROM
« Respuesta #15 en: 10 de Septiembre de 2024, 15:59:44 »
Bien, si ahora tienes los datos ordenados. Entonces utiliza el método de búsqueda dicotómico. Es decir El 1er dato lo comparas con un valor intermedio si es mayor o menor lo comparas con la sig. Mitad de referencia, es decir que en pocos pasos tienes una búsqueda
exponencial.

Sería de determinar si en ese microcontrolador de 8 bits, agregándole más procesamiento de datos, no lo hace más lento el proceso, pensaría que en el mejor de los casos, la reducción de tiempo va ser insignificante.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Conectado Eduardo2

  • PIC24F
  • *****
  • Mensajes: 965
Re:Algoritmos de búsqueda dentro de una memoria EEPROM
« Respuesta #16 en: 10 de Septiembre de 2024, 16:09:21 »
Es demasiado tiempo para tan pocos datos, la demora no puede venir del algoritmo de búsqueda sino de la manera que se lee la eeprom.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Algoritmos de búsqueda dentro de una memoria EEPROM
« Respuesta #17 en: 10 de Septiembre de 2024, 16:10:42 »
Es demasiado tiempo para tan pocos datos, la demora no puede venir del algoritmo de búsqueda sino de la manera que se lee la eeprom.

Tampoco ha dicho cual es la frecuencia del reloj del CPU, si está trabajando con un oscilador en kHz, posiblemente, sea normal esa latencia tan grande
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado jonathanPIC888

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
Re:Algoritmos de búsqueda dentro de una memoria EEPROM
« Respuesta #18 en: 10 de Septiembre de 2024, 16:31:15 »
Citar
Bien, si ahora tienes los datos ordenados. Entonces utiliza el método de búsqueda dicotómico. Es decir El 1er dato lo comparas con un valor intermedio si es mayor o menor lo comparas con la sig. Mitad de referencia, es decir que en pocos pasos tienes una búsqueda
exponencial.

Tenés algún ejemplo de eso, desconozco como se podría implementar.

Citar
Es demasiado tiempo para tan pocos datos, la demora no puede venir del algoritmo de búsqueda sino de la manera que se lee la eeprom.

Pensé lo mismo, pero no creo que sea el caso.

Citar
Tampoco ha dicho cual es la frecuencia del reloj del CPU, si está trabajando con un oscilador en kHz, posiblemente, sea normal esa latencia tan grande.

Trabajo a 64Mhz, lo máximo que da el micro.





Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 571
Re:Algoritmos de búsqueda dentro de una memoria EEPROM
« Respuesta #19 en: 10 de Septiembre de 2024, 19:34:26 »
Ejem. De búsqueda.
Suponiendo que el primer dato es  35.
Cómo lees 1 byte a la vez. Entonces se comienza comparando con la mitad del rango de 8bits es decir ; Si 35 >128 caso contrario comparar
35>64 como no se cumple, entonces el sig. paso sería.comparar 35>32 , entonces hasta aquí sabemos que es menor que 64 pero mayor que 32. Buscamos la mitad entre esos dos valores, es decir 35>(32+16) seguimos entonces con 35>(32+8),
 luego 35>(32+4) y luego 35>(32+2) , por descarte la comparación debe ser 35.
Si te fijas, la comparación de realiza con  la suma acumulada si es menor al valor a buscar  con múltiplos de 2^n
« Última modificación: 10 de Septiembre de 2024, 19:39:35 por Robert76 »