String - kodning qiymati funktsiyasi bo'lgan xash uchun bajarish mumkinmi? Orqa fonda menda juda ko'p string taqqoslash mavjud bo'lgan dastur bor.
if(s.equalsIgnoreCase("london")
functionA();
else if(s.equalsIgnoreCase("moscow")
functionB();
else if(s.equalsIgnoreCase("delhi")
functionC();
...
va hokazo.
Biroq, agar bu amalga oshirish juda qimmat bo'lsa (theta (n)) , chunki String taqqoslash barcha if ifodalari uchun amalga oshiriladi. Agar kalit String va qiymati funktsiya bo'lsa, unda biz faqatgina o'xshash biror narsani chaqira olamiz.
function = hash.Get("moscow");
function();
Uning murakkabligi yaxshi (teta (log (1))) .
Buni qilish mumkinmi?
2
qo'shib qo'ydi 08 Mart 2014 ichida 07:44 muallif quartz tahrirlangan 08 Mart 2014 ichida 07:50
Ko'rishlar: 22
manba
RONLJARUESDEHIBNARKKBETRUK
Qaysi tilda foydalanasiz? Java yoki C ++?
qo'shib qo'ydi 08 Mart 2014 ichida 07:46, muallif Avt, manba
Java va C ++ butunlay boshqacha xususiyatlarga ega bo'lgan butunlay boshqa tillardir. Biri tanlang.
qo'shib qo'ydi 08 Mart 2014 ichida 07:49, muallif Brian Roach, manba
Hozir java ishlataman. Lekin, javob har qanday til uchun foydali bo'lishi mumkin deb o'ylayman.
qo'shib qo'ydi 08 Mart 2014 ichida 07:48, muallif quartz, manba
C ++-ni teglardan olib tashladim. Iltimos Java uchun maxsus javob bering
qo'shib qo'ydi 08 Mart 2014 ichida 07:50, muallif quartz, manba
Do'stlaringiz bilan baham: |