সেরা সাধারণ উদ্দেশ্য - বিশেষত সংক্ষিপ্ত অ্যারে (1000 আইটেম বা তার চেয়ে কম) এবং কোডারগুলি যা অপ্টিমাইজেশন তাদের প্রয়োজনীয়তার জন্য উপযুক্ত তা সম্পর্কে অনিশ্চিত।
# $value can be any regex. be safe
if ( grep( /^$value$/, @array ) ) {
print "found it";
}
এটি উল্লেখ করা হয়েছে যে অ্যারে প্রথম মানটি মিললেও গ্রেপ সমস্ত মানগুলির মধ্য দিয়ে যায়। এটি সত্য, তবে গ্রেপ এখনও বেশিরভাগ ক্ষেত্রে অত্যন্ত দ্রুত । আপনি যদি সংক্ষিপ্ত অ্যারে (1000 টিরও কম আইটেম) সম্পর্কে কথা বলছেন তবে বেশিরভাগ অ্যালগরিদম যাইহোক বেশ দ্রুত গতিতে চলেছে। আপনি যদি খুব দীর্ঘ অ্যারে (1,000,000 আইটেম) সম্পর্কে কথা বলছেন তবে গ্রাটটি গ্রহণযোগ্যভাবে দ্রুত হবে তা নির্বিশেষে আইটেমটি প্রথম বা মাঝের বা অ্যারেরে শেষ কিনা।
দীর্ঘতর অ্যারেগুলির জন্য অপ্টিমাইজেশন কেস:
যদি আপনার অ্যারে বাছাই করা হয় তবে একটি "বাইনারি অনুসন্ধান" ব্যবহার করুন।
যদি একই অ্যারেটি বারবার বহুবার অনুসন্ধান করা হয় তবে প্রথমে এটি একটি হ্যাশে অনুলিপি করুন এবং তারপরে হ্যাশটি পরীক্ষা করুন। মেমোরিটি যদি উদ্বেগের বিষয় হয়ে থাকে তবে অ্যারে থেকে প্রতিটি আইটেম হ্যাশে স্থানান্তর করুন। আরও মেমরি দক্ষ তবে আসল অ্যারেটি নষ্ট করে।
যদি একই মানগুলি অ্যারের মধ্যে বারবার অনুসন্ধান করা হয় তবে অলসভাবে একটি ক্যাশে তৈরি করুন। (প্রতিটি আইটেম যেমন অনুসন্ধান করা হয়, প্রথমে অনুসন্ধানের ফলাফলটি একটি অবিরাম হ্যাশে সঞ্চিত ছিল কিনা তা পরীক্ষা করে দেখুন the এটি হ্যাশটিতে সন্ধান করুন এবং অনুসন্ধানটি এড়িয়ে যান)।
দ্রষ্টব্য: দীর্ঘতর অ্যারেগুলি ব্যবহার করার সময় এই অপ্টিমাইজেশানগুলি কেবল দ্রুত হবে। ওভারটিমাইজ করবেন না।