Oprettet ons. d. 25. april 2001 kl. 12:34:42

mickni33
mickni33 (13.827 point. Point ude: 150)

HASH TABLE

Der er sku noget jeg ikke forstår her.
En hash table søger man på index, key.
men hvis jeg skal søge på navnet michael i tabellen hvordan kan den så finde navnet når der ikke gives noget index nummer. key er jo en int og michael er en string.
Jeg har forsøgt mig med en løkke der kører tabellen indtil den finder michael og så tage index\'et derfra. men det giver ikke nogfen mening da jeg jo så har fundet navnet.
Er der nogen der kan komme med en forklaring eller kender et sted på nettet der omhandler hashtables

Skrevet ons. d. 25. april 2001 kl. 12:37:35| #1

wisen
wisen (40.115 point)
Du kan evt. prøve at kikke lidt på det her : http://www.planet-source-code.com/ (...)

Skrevet ons. d. 25. april 2001 kl. 12:45:43| #2

preclean
preclean (21.676 point)
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.......

Skrevet ons. d. 25. april 2001 kl. 12:45:56| #3

disky
disky (99.024 point)
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\'

Skrevet ons. d. 25. april 2001 kl. 12:46:50| #4

disky
disky (99.024 point)
p.s. man søger ikke i en hash tabel man slår op i den :)

Skrevet ons. d. 25. april 2001 kl. 12:46:50| #5

disky
disky (99.024 point)
p.s. man søger ikke i en hash tabel man slår op i den :)

Skrevet ons. d. 25. april 2001 kl. 12:56:15| #6

preclean
preclean (21.676 point)
i tilfælle af collicion må man slå op flere gange derfor ordet søger

Skrevet ons. d. 25. april 2001 kl. 12:58:52| #7

disky
disky (99.024 point)
preclean:

delvist enig, men en ordentligt designet hash klasse sørger selv for denne \'søgning\' altså ikke noget brugeren skal gøre.

Skrevet ons. d. 25. april 2001 kl. 13:04:45| #8

preclean
preclean (21.676 point)
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

Skrevet ons. d. 25. april 2001 kl. 13:18:52| #9

disky
disky (99.024 point)
yep så er vi enige :)

Skrevet ons. d. 25. april 2001 kl. 13:21:29| #10

mickni33
mickni33 (13.827 point)
hvis jeg alligevel skal lave en sekvientiel søgning kan jeg jo lige så godt have at array istedet...eller hva ???

Skrevet ons. d. 25. april 2001 kl. 13:22:55| #11

disky
disky (99.024 point)
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å.

Skrevet ons. d. 25. april 2001 kl. 13:38:54| #12

mickni33
mickni33 (13.827 point)
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

Skrevet ons. d. 25. april 2001 kl. 15:24:52| #13

mickni33
mickni33 (13.827 point)
pyyyha
10 klasser 1000 linier kode
det er ikke lige til men det skal jo heller ikke være for nemt...

Skrevet ons. d. 25. april 2001 kl. 15:35:03| #14

disky
disky (99.024 point)
er du ved at lave en ny www.google.com ?

1 klasse og et par linier skulle være nok :)

Skrevet ons. d. 25. april 2001 kl. 17:15:53| #15

mickni33
mickni33 (13.827 point)
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......

Skrevet ons. d. 25. april 2001 kl. 19:48:51| #16

preclean
preclean (21.676 point)
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)


Skrevet ons. d. 25. april 2001 kl. 20:02:33| #17

preclean
preclean (21.676 point)
resten at eksamen gik på (DBMS, sikkerhed, two phase-commit,client/server aritektur(primitiver) mm )

Skrevet ons. d. 25. april 2001 kl. 20:58:20| #18

mickni33
mickni33 (13.827 point)
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..

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Updater Hybrid App

Oprettet den 18. april 2012 kl. 13.29
sir_madsen giver 100 point for svar | Giv et svar »

Ansi-c win32API - kan ikke oprette Richedit4.1 kontrol

Oprettet den 16. april 2012 kl. 22.13
cblcbl giver 60 point for svar | Giv et svar »

Iphone Objective C - Sætte image på et imageview.

Oprettet den 7. april 2012 kl. 11.36
lasserasch giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger