بهینه سازی
مباحث بهینه سازی مباحث پیچیده ای بوده و ختم کلام در این مباحث اصولاً ممکن نیست. در این تعادل تنها چند نکته که از لحاظ دستور زبانی به کمک بهبود سرعت اجرای برنامه می آید بیان می کنیم. مابقی بهینه سازی شامل تحلیلهای مرتبه زمان اجرا به بخش طراحی الگوریتم واگذار می شود.
اولین اصل حذر از هر گونه عبارت شرطی است. به این معنا که حتی المقدور از شرط ها استفاده نکنید مثلاً در مورد محاسبه ماکزیمم و مینیمم دو عدد. فرض کنید که تابع قدر مطلق به روشی پیاده سازی شده:
برای اینکه ایده ای از پیاده سازی قدر مطلق بدون استفاده از عبارات شرطی داشته باشید، روش زیر را در مورد اعداد صحیح و نمایش " مکمل دو" برای اعداد منفی در نظر بگیرید.
sb:=n and $ 80000000
;sb:=sb shr 31
hn:=sb*$ FFFFFFFF
;n:=(n-sb)* or hn
فرض کنید که همه اعداد 32 بیتی صحیح هستند. کل عملیات بالا باعث می شود محتویاتدر انتهای کار قدر مطلقدر ابتدای کار باشند.
یک نکته در این گونه صرفه جوئیها در پیچیدگی نتیجه شده از این روش است نکته دوم این است که ممکن است چیزی که جای شرط جایگزین می کنید آنقدر طولانی شود که خود شرط سریعتر اجرا شود.
به هر حال در مورد بالا می توان بدون بکار بردن شرط را محاسبه کرد.
نکته دوم عبارات منطقی است. نتیجه عبارت منطقی اگر ناصحیح باشد کلا ناصحیح است مستقل از اینکه چه باشد. در محاسبه مقادیر منطقی از این نکته استفاده کرده و اگر اولین عنصر در صفر و یا اولین عنصر یک باشد باقی عبارت بررسی نمی شود یعنی در محاسبه
اگرغلط باشد دیگر بقیه عبارت را محاسبه نمی کند. بنابراین در هنگام نوشتن اینگونه شرط ها دقت کنید ساده ترین بخش محاسبه در ابتدای عملقرار گیرد. یک مثال خوب عبارت گفته شده است محاسبه درستی یا غلطی بسیار ساده تر از عبارت سمت راست است لذا در سمت چپ نوشته شده.
در نهایت استفاده از متغیرهای تابعی در جای خود بسیار مفید است. مثلاً در نظر بگیرید که یک تابع دو متغیره دارید:
که بصورت بالا تعریف می شود. حال اگر تابع فوق در زیر برنامه ای بصورت زیر بکار رفته باشد.
علاقه مندی ها (Bookmarks)