Jag har kommit på 1 sätt att minimera söktiden i arrayer till 0.
jag provade och la upp 15000 arrayer med slumpvisa nummer i.
Och gjorde en sökmotor på dessa nummer.
Om man bara gör en "for loop" och scannar igenom tills man hittar det sökta numret så tar det cirkus 15 sek. Men med min metod är man nere i 0 sek. Och det kvittar också hur många arrayer det är, jag kan lägga upp 1 miljard arrayer och söktiden blir ändå 0. Visst är det fantastikt. Därför undrar jag om detta någonsin har gjorts tidigare?, eller är jag den förste , :e :e :e *hoppas hoppas* . Känner ni till någon metod att få 0 i söktid oavsett antal arayer?.
:birp
AAhh, känns så skönt allltså, kanske man ska slå sig in på databasarean snart när jag fixat till allt och så. Tänk vilken snabbhett alltså!. Tyvärr är enda nackdelen är att metoden tar väldigt mycket minne, men det är också enda nackdelen.
Algoritmer för att snabba upp sökningar finns det gott om. Men någon som gör att det inte tar någon tid alls har jag aldrig sett (och tvivlar på att jag någonsin kommer att se heller). Skulle vilja påstå att det är teoretiskt omöjligt med den matematiska kunskap vi har idag. :)
Tackaaaarrrr :). Jepp det är lite matematik inblandat. men just hur jag gjort det kommer jag inte avslöja..... ännu. men jag skulle hemskt gärna vilja visa er ett exempel. men än är det på experiment stadiet, lyckades först i natt med det. men det kommer det kommer. men det får bli i kompilerad kod då i så fall så ni inte tjuvkikar ;) , eller jag kanske kan ha en presentation hemma hos mig. ja vi får se. än återstår det mycket arbete.
kanske nån kan lägga över detta i rätt forumtråd, jag vet, jag kollade inte så noga var jag postade det, var så uppspelt i natt :) :) :) :)
Fast vad skrev du.
Du la upp en massa arrayer 15000 stycken för att vara exakt.
Och sedan slumpade du ut nummer ? Och skulle sedan hitta dom numren eller ?
om jag förklarar så avslöjar jag hur jag gjort. :(
Det kanske låter underligt. Det är en paradox. Men det funkar.
Ni får lugna er lite, jag berättar i sinom tid. hur snabbt är det snabbaste man kan söka i arrayer hittintills?, i jämförelse då?.
Vet ni?. Jag har ingen koll alls.
Jepp jag tillverkade 15000 arrayer, eller struct-array för att vara exakt, eftersom varje array har 2 värden, ett med ett slumpvis nummer och ett med lite text som meddelar att den hittat rätt. Och gjorde en sökmotor på dessa nummer. Och så slår man in ett nummer så letar den upp vilken array det är som har det matchande numret. Och i normala fall när man gör använder en "for loop" och en "if sats" för att söka igenom alla 15000 arrayerna så tar det flera sekunder, men med min metod så är man nere i noll.
Måste nog erkänna att även jag är aningens skeptisk...
Dano skrev:
Tyvärr är enda nackdelen är att metoden tar väldigt mycket minne, men det är också enda nackdelen.
Någon uppskattning på hur denna minnesmängd förhåller sig till hur mycket data du söker genom? Om minnesmängden växer exponentiellt eller liknande är det fullkomligt meningslöst att använda algoritmen, även om den så skulle ta mindre än -1 sekund.
Dano skrev:
men jag skulle hemskt gärna vilja visa er ett exempel. men än är det på experiment stadiet, lyckades först i natt med det. men det kommer det kommer. men det får bli i kompilerad kod då i så fall så ni inte tjuvkikar
Gör det, och utforma programmet så att vi kan förse det med våra egna listor på ord/heltal. Förresten, måste talen vara unika?
Web-Tor skrev:
Vart tycker du att tråden ska flyttas?
Åt "Programmering - Övrigt" till låter väl lämpligt?
Någon uppskattning på hur denna minnesmängd förhåller sig till hur mycket data du söker genom? Om minnesmängden växer exponentiellt eller liknande är det fullkomligt meningslöst att använda algoritmen, även om den så skulle ta mindre än -1 sekund.
minnesmängden är konstant hela tiden hela vägen från det man startar och till man avslutar, den ökar inte vid sökning.
Det enda du gör är ju att du parar ihop en text med ett tal. Du kan ju omöjligt låta algoritmen leta efter en sträng utan att det åtgår nån form av tid. För i begreppet 'leta' ingår det att du jämför strängen med söksträngen, eller menar du att man vet med sig att nummer 555 motsvarar 'haskell_är_roligt_om_man_ger_fan_i_grafik'. Isf är det ingen maskinell 'sökning' överhuvudtaget och alla dina jämförelser med etablerade metoder faller pladask ;)
Vidare kan du omöjligt få plats med alla dessa adresser i cacheminnet för cpu:n, så det lär bli en del tidsåtgång för denna att leta rätt på rätt minnesblock, dock under 1 sekund. Däremot kan det i det fallet ändå bli över en sekund iom att operativsystemet knappast låter ditt program köra ostört hela tiden det tar att ladda in rätt block. Men det beror ju isf mer på operativet än din ihop-parning av värden med strängar.