حلقههای for تو در تو یا در واقع حلقههای for درون حلقههای for دیگر چندان کارآمد نیستند. با این وجود روشی آسان برای چرخیدن روی دادهها و اجرای اقدامات مختلف ارائه میکنند. شاید مشهورترین نمونه از حلقههای for تو در تو که به صورت عملی استفاده میشود، الگوریتم مرتبسازی حبابی باشد:
حلقه for تو در تو روی یک آرایه میچرخد و یک بار به همه عناصر آرایه سر میزند. بنابراین اگر آرایهای به صورت [3, 2, 1] داشته باشیم، وقتی i=0 باشد، حلقه for دوم یک بار دیگر روی همه عناصر آرایه میچرخد و زمانی i=1 باشد، مجدداً حلقه for دوم روی همه عناصر میچرخد.
همان طور که میتوانید تصور کنید این فرایند بسیار زمانبر است و خستهکننده است. به همین دلیل است که پیچیدگی زمانی اجرای الگوریتمهایی که از حلقههای for تو در تو استفاده میکنند، به صورت (O(n² است.
حلقههای for تو در تو بسیار کند هستند، زیرا ناکارآمد محسوب میشوند و روی مجموعه دادههای بزرگ (شاید بالاتر از ده هزار آیتم) از کار میافتند.
در هر حال، این حلقهها ابزاری هستند که هر توسعهدهندهای باید از آنها آگاه باشد. این تکنیک در رویکردهای تهاجمی (brute-force) برای حل الگوریتمها مورد استفاده قرار میگیرد. استفاده از یک رویکرد تهاجمی به عنوان نخستین راهحل میتواند بینش خوبی در خصوص مسئله مورد بررسی به دست بدهد. این بینشها به ما امکان میدهند که مسئله را با دقت بیشتری ارزیابی کنیم و راهحل بهتری بیابیم.
به علاوه اگر به تازگی کار خود را آغاز کردهاید، روش بهتری برای ایجاد یک راهحل عملی واقعی ارائه میکنند. بدین ترتیب میتوانید اعتماد به نفس لازم برای بررسی یک مسئله از زاویههای مختلف را به دست آورید.
هیچ چیز بدتر از این نیست که شروع به کار روی یک مسئله بکنید و مطلقاً هیچ روشی برای سوق دادن مسئله به سمت یک راهحل در ذهن خود نداشته باشید.
بنابراین کسانی که این روش را نامناسب میدانند را فراموش کنید و بدانید که فرایند حل مسئله یک فرایند گام به گام است. بدین ترتیب باید این تکنیک را نیز در فهرست ابزارهای خود قرار دهید و از بهکارگیری آن در موارد لزوم شرمگین نباشید.