veoma brzo pretrazivanje...
Prikazujem rezultate 1 do 9 od 9

Tema: veoma brzo pretrazivanje...

  1. #1
    Obećava
    Učlanjen
    31.01.2005.
    Pol
    muški
    Lokacija
    Beograd
    Poruke
    67
    Reputaciona moć
    48

    Podrazumevano veoma brzo pretrazivanje...

    Potrebna mi je pomoc oko nekog algoritma. Ne bitno je u kom programskom jeziku ga pisem,samo mi treba ideja.Problem je sledeci:
    Imam neki file koji je delom u binarnom obliku,a delom u obicnom,nama ljudima razumljivom obliku. Evo na primer sledece:
    mobilnitelefon,01101010000110101 (naravno ove nule i jedinice se ne vide ovako,vec ih notepad prepoznaje kao neke svoje znakove pa je taj file ustvari oblika sto provo imam mobilnitelefon, pa onda skup nekih $#%E^*^%^& takvih znakova)

    i tako se to ponavlja malte ne u 1000000 takvih redova...svaki pocinje sa slovima zavrsava se sa bitima...
    sada meni je problem sledeci.moram taj deo od teksta koji mi ljudi razumemo da povezem sa tim binarnim delom..sada problem je sto postoje vise tih tipova mobilnitelefon, pa mi je potrebno da ih prakticno razvrstam ti ides ovamo ti ides ovamo....nezgodno je to sto taj file ima na primer nekoliko miliona znakova,pa onda tom mom algoritmu za pretrazivanje od nekoliko for ciklusa i if naredbi treba boga mi 30-tak sekundi..jel postoje neki brzi algoritmi koji resavaju problem pretrazivanja..znaci meni nije dovoljno samo jednu vrednost da nadjem vec mi je potrebno da svaki od tih redova pravilno razvrstam i kazem tih i tih ima toliko i toliko..valjda ste me razumeli..znaci jos jednom da rezimiram..potrebno mi je brzo pretrazivanje zasnovano na necemu..jel postoji neki brzi nacin ili je samo cekanje resenje za sve probleme???programski jezik,kao sto sam rekao nije problem,jer mi samo algoritam treba...Hvala Vam



  2. #2
    Zainteresovan član sist_ing (avatar)
    Učlanjen
    28.02.2006.
    Pol
    muški
    Lokacija
    Bor
    Poruke
    292
    Reputaciona moć
    46

    Podrazumevano Re: veoma brzo pretrazivanje...

    Mislim da je cekanje jedino resenje... ako kazes da se fajl sastoji od nekih 1000000 redova, ipak je to ogromna kolicina znakova i potrebno je izvesno vreme da bi petlja obradila svaki znak posebno.
    Moras obraditi svaki znak posebno jer ne znas tacnu lokaciju zeljenog stringa u fajlu.
    Ali ima i za to resenje! To resenje, zapravo, ne ubrzava samo procesiranje teksta vec "kaze" tebi da malo sacekas dok se procesiranje ne obavi: ugradis progress bar!
    On daje najbolji psiholoski efekat koji pozitivno deluje na onoga ko ceka obradu teksta, ili bilo cega, u nekom fajlu.
    Ukazuje ti da se nesto definitivno procesira i, u vecini slucajeva, da racunar nije zaglavio a da uz to i mozes videti koliko je jos tacno preostalo do kraja.
    Da li si idiot? Saznaj ovde.

  3. #3
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: veoma brzo pretrazivanje...

    nista mi nije jasno, ali ako hoces brzo pretrazivanje, treba da taj fajl procitas i smestis ga u nekakvo stablo, i obicno binarno ce da posluzi.

    dodatno, mozes da kombinujes, pa da podatke ucitavas u strukture, strukture smestas u stablo, a pravis pomocna stabla za svaki podatak po kom hoces da trazis, i da u tim pomocnim stablima budu reference na strukture u glavnom stablu.


  4. #4
    Obećava
    Učlanjen
    31.01.2005.
    Pol
    muški
    Lokacija
    Beograd
    Poruke
    67
    Reputaciona moć
    48

    Podrazumevano Re: veoma brzo pretrazivanje...

    ja sam se potrudio da objasnim sto sam bolje mogao...ajde neka bude prica ovakva..imam nekoliko desetina miliona znakova..medju njima su odredjene kombinacije znakova koje mi trebaju..na primer kad se pronadje u tim silnim znakovima da imam kombinaciju TASTER onda ja moram da preduzmem neke radnje sa znakovima koji slede nakon te sada vec reci..e sad je pitanje jel postoji neki algoritam koji ce da ubrza pretrazivanje te reci TASTER..odnosno skupa znakova koji kada su jedan do drugog obrazuju ovu rec...
    mislim da je gornji odgovor ustvari jako dobar..jer ni ja ne vidim neki sada mnogo brzi nacin da se ubrza pretraga,jer ja moram svaki znak da vidim i da pitam jesu li na mesti i,i+1,i+2... slova TASTER,ako jesu onda ta akcija,ako nisu onda idemo dalje..mislim da je to nemoguce izbeci..a progres bar bi bilo zaista dobro resenje,jer bi to dovelo upravo do tog efekta...jos ako je kao na windows 7 ili visti sto ima ona linija koja seta...od nje uvek pomislim da je zavrseno ne znam zasto..istripovao sam se sa njom jedno milion puta..tako dazaista jeste dobra stvar..ako ima neko ideju neka pise,ako opet nije jasno ja cu se potruditi da sto bolje objasnim svoj probelm

  5. #5
    Obećava
    Učlanjen
    31.01.2005.
    Pol
    muški
    Lokacija
    Beograd
    Poruke
    67
    Reputaciona moć
    48

    Podrazumevano Re: veoma brzo pretrazivanje...

    e da,nisam neki programer,ovo radim sto moram :-)..ako objasnjavate probajte da to nema veze sa C,C++ ili tako necim..nego nekim jednostavnim algoritmima,koji se mogu implementirati svuda.hvala

  6. #6
    Zainteresovan član sist_ing (avatar)
    Učlanjen
    28.02.2006.
    Pol
    muški
    Lokacija
    Bor
    Poruke
    292
    Reputaciona moć
    46

    Podrazumevano Re: veoma brzo pretrazivanje...

    Ne znam sad u cemu je problem.
    Ako imas taj postojeci algoritam (pretpostavljam da ga imas cim trazis bolji), ubacis progres bar, setujes njegovu maximalnu vrednost (ukupni broj znakova u fajlu) i svaki put kad prodjes kroz petlju (koja se isti broj puta izvrsava), uvecas ga za 1.
    Pored progress para, sto ti kazes, mozes dodati i bilo koju drugu animaciju: pescani sat, animacija kao na visti i td...
    ali progress bar ti daje u uvid tacno na kom se delu puta program nalazi sa obradom texta tako da ako nesto zapne, onda i on stane (imaces realnu sliku onoga sta se stvarno desava).
    Da li si idiot? Saznaj ovde.

  7. #7
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: veoma brzo pretrazivanje...

    a....jasno mi je sad...

    pazi ovako - ucitas jedan znak, ako nije prvi znak onoga sto trazis, ucitas sledeci i t.d.
    kada ucitas znak koji je isti kao prvi znak onoga sto trazis, onda radis sledecu optimizaciju:
    ucitavas dalje znak po znak dok god se slaze sa onim sto trazis, i sve to sto ucitavas pamtis u jedan niz. kada procitas sta ti je trebalo, ili se desi da na petom-sestom npr znaku to ipak nije ono sto trazis, onda iz niza ucitanih slova idi dalje na isti nacin. ako nista drugo - izbegao si rovarenje po fajlu, sto je spora operacija (u stvari kesiras/baferujes potrebne podatke)

    druga optimizacija bila bi da kad krenes da ucitavas u niz, za svako slovo koje ucitas u niz pocnes i od tog slova da pratis da li se poklapa (da li je to slovo prvo slovo onoga sto trazs, ako jeste - nekako ga markiras i kod ucitavanja znakova proveravas vise tih stringova odjednom)


  8. #8
    Zainteresovan član sist_ing (avatar)
    Učlanjen
    28.02.2006.
    Pol
    muški
    Lokacija
    Bor
    Poruke
    292
    Reputaciona moć
    46

    Podrazumevano Re: veoma brzo pretrazivanje...

    Ovaj tvoj drugi metod je dosta brzi od prvog ali nije toliko pouzdan kao prvi jer preti opasnost da se nesto i preskoci.
    Za ovaj metod preporucujem dobro pregledati fajl (vizuelno) i zakljuciti ima li neku logiku u rasporedu pojavljivanja onoga sta mu treba.
    Ako ima, onda izraditi pretragu po toj logici. Jedino na ovaj nacin, ima smisla koristiti ovaj drugi metod inace nece 100% dobiti trazene podatke, nesto ce sigurno preskociti.

    Prvi metod je dosta precizan a samim tim i spor (ako je u pitanju ogromna kolicina znakova).
    Kako god okrenuo, mora proveriti svaki znak koji postoji u fajlu kako bi nasao trazenu lokaciju odakle bi poceo sa detaljnom proverom.
    Kada nadje trazenu lokaciju, onda pocinje za detaljnom proverom kao sto su: odredjivanje prvog i zadnjeg broja a samim tim i duzinu celog broja, provera da li duzina broja odgovara odredjenoj grupi brojeva, smestanje nadjenog broja u odgovarajucu grupu. Ako trazeni uslov nije ispunjen, i dalje pretlja "ceslja" svaki znak posebno.

    E i jos nesto: brzina ovakvog nacina pretrage ne zavisi samo od velicine fajla tj kolicine znakova u njemu, vec zavisi malo i od jacine procesora na kome se izvrsava.
    Da li si idiot? Saznaj ovde.

  9. #9
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: veoma brzo pretrazivanje...

    onda evo smernice - potrazi kako se regularni izrazi implementiraju, to ti treba


Slične teme

  1. Pretrazivanje foldera na drugom racunaru u VB
    Autor tt05 u forumu Programiranje
    Odgovora: 0
    Poslednja poruka: 12.07.2006., 11:05
  2. Upit za pretrazivanje u Accessu
    Autor profesionalac-bgd u forumu Programiranje
    Odgovora: 2
    Poslednja poruka: 02.12.2005., 15:22
  3. Upit za pretrazivanje u Accessu
    Autor profesionalac-bgd u forumu Softver
    Odgovora: 1
    Poslednja poruka: 27.11.2005., 02:53
  4. pretrazivanje
    Autor mrs X u forumu Web dizajn
    Odgovora: 9
    Poslednja poruka: 02.04.2004., 00:03

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •