دانش کامپیوتر

دانش کامپیوتر

در این بخش، به دنیای برنامه‌نویسی، الگوریتم‌ها، شبکه و زیرساخت‌های فناوری می‌پردازیم

برنامه نویسیالگوریتمشبکه های کامپیوتریزیرساخت فناوریمهندسی نرم افزارمهندسی سخت افزار

مرور بخش‌ها

برنامه‌نویسی

دنیای زبان‌های کدنویسی و توسعه نرم‌افزار

مشاهده بخش

دسته‌بندی‌های مرتبط

مقالات منتخب

جداول هش توضیح داده شده: از آدرس‌دهی مستقیم تا آدرس‌دهی باز

جداول هش جستجو، درج، و حذف زمان-ثابت مورد انتظار فراهم می‌کنند، که آن‌ها را به یکی از پراستفاده‌ترین ساختارهای داده در عمل تبدیل می‌کند. این راهنمای جامع ایده آدرس‌دهی مستقیم که هشینگ را انگیزه می‌دهد، نحوه مدیریت برخوردها از طریق زنجیره‌بندی، ویژگی‌های توابع هش خوب، آدرس‌دهی باز به‌عنوان یک جایگزین کارآمد از نظر حافظه، و ملاحظات عملی برای پیاده‌سازی‌های جدول هش دنیای واقعی را پوشش می‌دهد.

/persian/article-fa/hash-tables-explained-from-direct-addressing-to-open-addressing-fa

درخت‌های جستجوی دودویی: پرس‌وجو، درج، و حذف کارآمد

یک درخت جستجوی دودویی عناصر را به ترتیب مرتب‌شده نگه می‌دارد در حالی که جستجو، درج، و حذف کارآمد را پشتیبانی می‌کند، همگی در زمانی متناسب با ارتفاع درخت. این راهنمای جامع ویژگی تعریف‌کننده درخت-جستجوی-دودویی، عملیات‌های اصلی پرس‌وجو شامل جستجو، حداقل، حداکثر، و جانشین، و رویه‌های جزئی‌تر درج و حذف که باید ساختار درخت را با دقت حفظ کنند را پوشش می‌دهد.

/persian/article-fa/binary-search-trees-querying-inserting-and-deleting-efficiently-fa

درخت‌های قرمز-سیاه: چگونه درخت‌های جستجوی خودمتوازن‌کننده ارتفاع لگاریتمی را تضمین می‌کنند

درخت جستجوی دودویی ساده که پیش‌تر در این مجموعه پوشش داده شد، می‌تواند تحت ترتیب‌های درج بدشانس به ارتفاع خطی تنزل یابد. درخت‌های قرمز-سیاه این را با حفظ پنج ناوردای ساده که از نظر ریاضی ارتفاع لگاریتمی را صرف‌نظر از ترتیب درج تضمین می‌کنند حل می‌کنند. این راهنمای جامع ویژگی‌های قرمز-سیاه، عملیات چرخش که ساختار درخت-جستجو را حین بازساختاردهی درخت حفظ می‌کند، و اینکه درج و حذف چگونه با منطق تعادل‌مجدد گسترش می‌یابند تا این تضمین‌ها را حفظ کنند را پوشش می‌دهد.

/persian/article-fa/red-black-trees-how-self-balancing-search-trees-guarantee-logarithmic-height-fa

پایه‌های برنامه‌نویسی پویا: برش میله، زنجیره ماتریس، و اصول اصلی

برنامه‌نویسی پویا مسائل پیچیده را با شکستن آن‌ها به زیرمسئله‌های هم‌پوشان و ذخیره راه‌حل‌ها برای اجتناب از محاسبه زائد حل می‌کند. این راهنمای جامع تکنیک را از طریق مسئله کلاسیک برش میله معرفی می‌کند، آن را به مسئله جزئی‌تر ضرب زنجیره‌ای ماتریس گسترش می‌دهد، و دو ویژگی ضروری — زیرساختار بهینه و زیرمسئله‌های هم‌پوشان — که تعیین می‌کنند چه زمانی برنامه‌نویسی پویا اعمال می‌شود را استخراج می‌کند.

/persian/article-fa/dynamic-programming-foundations-rod-cutting-matrix-chains-and-core-principles-fa

توضیح طولانی‌ترین زیردنباله مشترک و درخت‌های جستجوی دودویی بهینه

دو مسئله کلاسیک برنامه‌نویسی پویای دیگر، تطبیق‌پذیری این تکنیک را فراتر از بهینه‌سازی عددی نشان می‌دهند: یافتن طولانی‌ترین زیردنباله مشترک بین دو رشته، سنگ‌بنای ابزارهای diff و بیوانفورماتیک، و ساخت یک درخت جستجوی دودویی که هزینه جستجوی مورد انتظار را با فرکانس‌های دسترسی شناخته‌شده کمینه می‌کند. این راهنمای جامع هر دو الگوریتم را با جزئیات کامل، شامل استخراج رابطه بازگشتی، ساخت جدول، و بازسازی راه‌حل، مرور می‌کند.

/persian/article-fa/longest-common-subsequence-and-optimal-binary-search-trees-explained-fa

الگوریتم‌های حریصانه: انتخاب فعالیت، اصول اصلی، و کدهای هافمن

الگوریتم‌های حریصانه یک راه‌حل را قطعه‌به‌قطعه می‌سازند، و همیشه گزینه‌ای که در لحظه فعلی بهترین به‌نظر می‌رسد را انتخاب می‌کنند، بدون هرگز بازبینی آن انتخاب بعداً، با این حال برای مسائل خاصی این استراتژی ساده به‌طور اثبات‌پذیر یک نتیجه بهینه سراسری تولید می‌کند. این راهنمای جامع مسئله انتخاب فعالیت را به‌عنوان یک مثال انگیزاننده پوشش می‌دهد، اصول کلی که تعیین می‌کنند چه زمانی الگوریتم‌های حریصانه کار می‌کنند را استخراج می‌کند، و کدگذاری هافمن، یک الگوریتم حریصانه به‌طور گسترده استفاده‌شده برای فشرده‌سازی بهینه داده، را توضیح می‌دهد.

/persian/article-fa/greedy-algorithms-activity-selection-core-principles-and-huffman-codes-fa

تحلیل مستهلک: روش تجمعی، روش حسابداری، و روش پتانسیل

برخی عملیات‌های ساختار داده گاهی زمان طولانی می‌گیرند، اما میانگین‌گیری‌شده در سراسر یک توالی کامل از عملیات‌ها، هزینه به‌ازای هر عملیات واقعاً بسیار پایین است. تحلیل مستهلک ابزارهای دقیقی برای اثبات این کارایی میانگین بدون تکیه بر احتمال یا فرضیات غیرواقع‌بینانه ورودی فراهم می‌کند. این راهنمای جامع سه تکنیک استاندارد تحلیل مستهلک را از طریق مثال‌های کلاسیک آرایه پویا و شمارنده باینری پوشش می‌دهد.

/persian/article-fa/amortized-analysis-the-aggregate-accounting-and-potential-methods-fa

درخت‌های B: ساختار درخت متوازنی که پشت پایگاه‌داده‌ها و سیستم‌فایل‌ها قرار دارد

وقتی داده به‌اندازه‌ای بزرگ است که در حافظه جا نمی‌شود و باید روی دیسک ذخیره شود، کمینه‌کردن تعداد دسترسی‌های دیسک بسیار مهم‌تر از کمینه‌کردن مقایسه‌ها می‌شود. این راهنمای جامع درخت‌های B را توضیح می‌دهد، یک ساختار درخت جستجوی متوازن که به‌طور خاص برای کمینه‌کردن ورودی/خروجی دیسک با نگه‌داشتن کلیدهای زیاد به‌ازای هر گره طراحی شده، و ویژگی‌های تعریف‌کننده، رویه جستجو، و تکنیک درج مبتنی بر تقسیم که توازن را حفظ می‌کند را پوشش می‌دهد.

/persian/article-fa/b-trees-the-balanced-tree-structure-behind-databases-and-file-systems-fa

ساختارهای داده مجموعه‌های مجزا: Union-Find با Rank و Path Compression

بسیاری الگوریتم‌ها نیاز دارند یک مجموعه پویا از مجموعه‌های مجزا را ردیابی کنند، و به‌طور مکرر مجموعه‌ها را ادغام کرده و پرس‌وجو کنند کدام مجموعه یک عنصر متعلق به آن است. این راهنمای جامع نمایش جنگل مجموعه‌مجزا، دو بهینه‌سازی حیاتی union by rank و path compression، و زمان اجرای مستهلک تقریباً-ثابتی که این بهینه‌سازی‌ها با هم دست می‌یابند، نتیجه‌ای مرکزی برای الگوریتم‌هایی مانند درخت پوشای کمینه کروسکال، را پوشش می‌دهد.

/persian/article-fa/disjoint-set-data-structures-union-find-with-rank-and-path-compression-fa

نمایش گراف، جستجوی سطح‌اول، و جستجوی عمق‌اول

گراف‌ها روابط بین اشیا را مدل‌سازی می‌کنند، و تقریباً هر الگوریتم گراف روی دو استراتژی پیمایش بنیادین ساخته می‌شود. این راهنمای جامع دو نمایش استاندارد گراف، لیست‌های مجاورت و ماتریس‌های مجاورت، را پوشش می‌دهد، سپس جستجوی سطح‌اول برای یافتن کوتاه‌ترین مسیرها در گراف‌های بدون‌وزن و جستجوی عمق‌اول برای کاوش ساختار و تشخیص چرخه‌ها را توضیح می‌دهد، شامل ویژگی‌های زمان‌بندی‌شان که در الگوریتم‌های گراف بعدی استفاده می‌شوند.

/persian/article-fa/graph-representations-breadth-first-search-and-depth-first-search-fa

مرتب‌سازی توپولوژیک و مؤلفه‌های قویاً‌متصل با استفاده از DFS

ویژگی‌های زمان‌بندی جستجوی عمق‌اول دو الگوریتم گراف قدرتمند با کاربرد عملی گسترده را باز می‌کنند: مرتب‌کردن وظایفی که وابستگی دارند، و شناسایی خوشه‌های به‌شدت متصل درون یک گراف جهت‌دار. این راهنمای جامع مرتب‌سازی توپولوژیک برای زمان‌بندی وظایف وابسته را توضیح می‌دهد، سپس الگوریتم DFS دوعبوری ظریف برای یافتن مؤلفه‌های قویاً‌متصل را مرور می‌کند.

/persian/article-fa/topological-sorting-and-strongly-connected-components-using-dfs-fa

درخت پوشای کمینه: مقایسه الگوریتم‌های کروسکال و پریم

اتصال مجموعه‌ای از مکان‌ها با کمترین هزینه کل اتصالات یک مسئله بهینه‌سازی کلاسیک با راه‌حل‌های حریصانه ظریف است. این راهنمای جامع مسئله درخت پوشای کمینه را توضیح می‌دهد، قضیه عمومی مبتنی بر برش که رویکردهای حریصانه برای آن را توجیه می‌کند اثبات می‌کند، و هم الگوریتم کروسکال، ساخته‌شده روی ساختار مجموعه‌مجزا، و هم الگوریتم پریم، ساخته‌شده روی یک صف اولویت، را مرور می‌کند.

/persian/article-fa/minimum-spanning-trees-kruskals-and-prims-algorithms-compared-fa