Du kan evt. prøve at kikke lidt på det her :
http://www.planet-source-code.com/ (...)
når du bruger en key(int) som indexsering kan du kun søge på denne key via din hashfunktion, alle andre colloner i dine tabel må du bruge en sekventiel søgning for at finde det du søger efter. så hvis du ikke kender keyen på michael kan du ikke udnytte dit index.......
tag f.eks. ascii værdierne for \'michael\' læg dem sammen og lav en moduls 65536 på den til sidst. så har du en hash værdi for navnet \'michael\'
p.s. man søger ikke i en hash tabel man slår op i den :)
p.s. man søger ikke i en hash tabel man slår op i den :)
i tilfælle af collicion må man slå op flere gange derfor ordet søger
preclean:
delvist enig, men en ordentligt designet hash klasse sørger selv for denne \'søgning\' altså ikke noget brugeren skal gøre.
nej selvfølig skal brugeren ikke gøre noget. dette er kun lidt uenighed om en ord \"søger\" funktionen der udfører opslagningen i hashtabellen skal skal søge i den mest sandsylige index..... du ved jo god hvad jeg mener...
fx. key nr 11,22,33,44 og man bruger moduls 11 kan man få op til 4 opslag i tabellen :) søger i mest sandsynlige index
hvis jeg alligevel skal lave en sekvientiel søgning kan jeg jo lige så godt have at array istedet...eller hva ???
nej for den sekventiele søgning skal kun bruges hvis du har en såkaldt hash kollision, altså hvor to forskellige nøgler har samme hash key,
Sker dette for tit, skal du vælge en anden måde at udregne dine hash nøgler på.
ok men så tror jeg at den med ascii værdierne virker som det bedste for man kan jo også godt tage ascii værdien af f.eks tallet 23 og så er man dækket ind hvis man vil søge både på cpr eller navn....kigger lige på det
pyyyha
10 klasser 1000 linier kode
det er ikke lige til men det skal jo heller ikke være for nemt...
er du ved at lave en ny
www.google.com ?
1 klasse og et par linier skulle være nok :)
jojo men den skal implementeres med nogle andre klasser.
det er eksamensprojekt.
skal lave en lexer / parser (compiler)som skal kunne lave en analyse og checke syntaxen af følgende sql sætninger
insert
select
delete
foruden det skal det fungere på en client/server over INET ved hjælp af tråde...
jeg har lavet min insert statement som så ligger det der skal insertes ned i en hashtable ..
jeg operere med to tupler i en kunde table
og to tupler i en salary table dvs to hashtable som siden hen skal kunne joines
Jeg vil lige spørge om
skal hver tupple/attribut have hver deres hashtable altså en hashtable for
fornavn
efternavn
fra tabellen kunde
og
løn
timer
fra tabellen salary
Hvis jeg laver det på den måde tror jeg selv at det bliver nemmere at lave en søgning og en join
i øjeblikket har jeg fornavn og efternavn i en hashtable og såp er det et problem at pille enten fornavn eller efternavn ud seperat....er det ikke...
Er der nogle der forstår denne omgang vrøvl......
kære mickni33
du spilder din tid ved at lave index på alle dine colloner, opgaven går på at vise man kender princippet bag hashning og kan bruge det. det gør du udemærket ved kun at tillade at der søges når man kender keyen.
mit råd er at konceterer dig om clien/server med tråde/låse og joint mellem to tabeller på to forskælling server. samt en rapport om dette. det er rapporten der tæller og så selvfølig din viden om de forskellige områder til eksamen.
da jeg var til eksamen brugte vi ca 1-1.5 minut på hashning og de forskællige principper bag dette.
ps hvis du har 10 klasser med 1000 liner skulle du bruge din tid på at ryde op i din codning.
jeg lavede lexer/parser/client/server/controller/dbms server/hash 7 klasser ialt med max 500 liner ialt inclusiv komentaret.
ps jeg fik 10. selv om jeg kun havede index på keyen (en collone)
resten at eksamen gik på (DBMS, sikkerhed, two phase-commit,client/server aritektur(primitiver) mm )
Skide godt preclean
Det tror jeg er en god ide...Du kender det godt ikk? man prøver at lave det så godt som muligt og ender med at gøre det svære end man behøver..
keep it simple..