حل مکعب روبیک 3در3

در این پست الگوریتم حل مکعب روبیک را به اشتراک خواهم گذاشت.

ادامه خواندن حل مکعب روبیک 3در3

ساختمان داده های انتزاعی

درساختمان داده برخی از ساختارهای داده به صورت انتزاعی (Abstract data type) رفتار و مقدار آنها تعریف می شوند.مثلا صف اولویت یک ساختمان داده است، که رفتار آن علاوه بر ذخیره مقدار داده، یک شاخص اولویت به آن الصاق می شود. هرچه الویت این داده مشخص بیشتر باشد، این داده مقدم تر خواهد بود. در یک نگاه کلی متدهایی چون insert، removeو update کردن جهت حذف، اضافه کردن و اپدیت کردن ساختمان داده به کار می رود.

ادامه خواندن ساختمان داده های انتزاعی

مرتب سازی مقایسه ای و شمارشی

جهت مرتب سازی یک حجم از دیتای ورودی دو مکانیزم قالب مرتب سازی شمارشی و مرتب سازی مقایسه ای وجود دارد. حد پایین مجانب مرتب سازی مقایسه ای برابر ((Θ(nlog(n است، که در الگوریتم های مرتب سازی هیپ و مرتب سازی ادغام پیاده شده اند. کاهش مجانب پایین در الگوریتم های شمارشی محقق شده است. ازجمله آن می توان مرتب سازی مبنایی نام برد.

ادامه خواندن مرتب سازی مقایسه ای و شمارشی

متناقض نمای روز تولد

امروز مسئله متناقض نمای روز تولد را مرور می کردم، یک چیز که برای من خیلی جالب بود، علی رغم فواید شهود، گاهی وقت ها شهود باعث دردسر می شود. شهود گرایی در ریاضیات تا چه حد مناسب است؟

ادامه خواندن متناقض نمای روز تولد

الگوریتم استراسن جهت ضرب ماتریس ها

یکی از راه های طراحی الگوریتم شکستن مسیله به زیرمسیله های کوچکتر می باشد، در کتاب های الگوریتم  این روش divide and conquer نامیده می شود. در این پست ابتدا به شرح الگوریتم استراسن و سپس پیاده سازی آن در جاوا خواهیم پرداخت.

ادامه خواندن الگوریتم استراسن جهت ضرب ماتریس ها