İlgi alanı dize eşleşmesidir. Böyle bir yapıya sahip olduğumu varsayın.Mükemmel bir karma için bir işlev tasarlamaya nasıl giderdin?
typedef struct
{
char *name,
int (*function)();
} StringArray
StringArray s[] =
{
{"George", func1},
{"Paul", func2},
{"Ringo", func3},
{"John", func4},
{"", NULL} /* End of list */
}
Dizide sabit sayıda dizgi var. Örnekte olduğu gibi kodlanmışlardır. Tablo değişirse, hash işlevinin kalitesini yeniden değerlendirmek gerekir.
Bir dizeye bir karma işlevi uygulamak istiyorum ve dize dizideki bir ile eşleşiyorsa, işlevini çağırın. Bunun için mükemmel bir karma işlevi gereklidir. Çarpışmalara izin verilmez. Yemin etmenin amacı, aramada O (1) performansının elde edilmesidir.
Bunu yapmak için bir işlev tasarlama konusunda hangi fikirlere sahipsiniz?
Spam bunu –
@Mitch anlamı ne düşündüğünü demektir sanmıyorum: Şunu musunuz bu kolayca googled edilebilecek bir sorudur? –
@ j_random_hacker: Ben yaptım. Ama geç oldu, ve spam değil ... –