2010-05-13 15 views
7

मेरे पास स्ट्रिंग का एक विशाल सरणी है जिसे मैं लुक-अप के रूप में उपयोग करना चाहता हूं।in_array() एक बाइनरी खोज एल्गोरिदम का उपयोग करता है?

मैं in_array() उपयोग कर रहा हूँ, लेकिन मैं संदेह इसके माध्यम से एक सरल पाश कर - क्या किसी को पता in_array() algo एक bsearch algo का उपयोग करता है कि क्या करता है?

+0

सुनिश्चित नहीं है कि in_array करता है या नहीं। मैं इस पर आया, सोचा कि आपको यह आसान लगेगा। http://au.php.net/manual/en/function.array-search.php#93352 –

उत्तर

3

in_array() बाइनरी (ओ (लॉग एन)) खोज के बजाय एक रैखिक (ओ (एन)) खोज का उपयोग करता है।

यदि आप ओ (लॉग एन) या बेहतर चाहते हैं तो मैं सुझाव दूंगा कि आप या तो वे मान डाल दें जिन्हें आप सरणी में चाबियों के रूप में खोजना चाहते हैं या आप एक इंडेक्स संरचना बनाते हैं जो प्रभावी रूप से वही काम करता है।

5

चूंकि इसे सरणी को सॉर्ट करने की आवश्यकता नहीं है, इसलिए मुझे नहीं लगता कि यह बाइनरी खोज कैसे कर सकता है।

+0

मुझे पता है कि यह निष्पक्ष नहीं है, ओपी शायद सोचा होगा कि PHP एक क्रमबद्ध क्रम को बनाए रख रहा था- हुड। –

संबंधित मुद्दे