stanford-oval/wikipedia huggingface dataset:
الگوریتم تقسیم و حل

در علوم کامپیوتر، الگوریتم تقسیم و حل (D&C) (به انگلیسی: Divide and conquer) الگوی طراحی الگوریتم مهمی بر اساس بازگشت چند خطی است. یک الگوریتم تقسیم و حل از طریق تفکیک یک مسئله به دو یا چند زیرمسئله از یک نوع (یا انواع وابسته به هم) به صورت بازگشتی کار می‌کند. این تفکیک تا زمانی ادامه می‌یابد که زیرمسئله‌های حاصله به میزان کافی ساده شده باشند تا بتوان آن‌ها را مستقیماً حل کرد. جواب مسئلهٔ اصلی از ترکیب جواب‌های به دست آمده برای زیر مسئله‌ها به دست می‌آید.
این تکنیک مبنای الگوریتم‌های کارآمدی برای انواع مسئله‌ها است، به عنوان مثال، الگوریتم‌های مرتب‌سازی (مثل مرتب‌سازی سریع و مرتب‌سازی ادغامی), ضرب اعداد بزرگ (مثل کاراتسوبا), تجزیه‌کننده (مثل تحلیلگر بالا به پایین)، و محاسبهٔ تبدیل فوریه گسسته (تبدیل سریع فوریه) از روش تقسیم و حل استفاده می‌کنند.
از سوی دیگر، توانایی درک و طراحیِ الگوریتم‌های حل و تقسیم هنری است که کسب مهارت در آن زمان زیادی می‌طلبد. به هنگام اثبات یک قضیه به کمک استقرا، غالباً نیازمند آنیم که به منظور دستیابی به یک روند بازگشتی، مسئلهٔ اصلی را با یک مسئلهٔ عمومی‌تر یا پیچیده‌تر جایگزین کنیم، و این در حالی است که روش منظمی برای یافتن تعمیم مناسب وجود ندارد.
گاهی نام «تقسیم و حل» در مورد الگوریتم‌هایی که هر مسئله را تنها به یک زیرمسئله تقلیل می‌دهند نیز به کار می‌رود، مانند الگوریتم جستجوی دودویی برای یافتن یک پرونده در یک لیست مرتب شده. با وجود این تعریف جامع، هر الگوریتمی که از بازگشت یا حلقه استفاده می‌کند، به نوعی می‌تواند «الگوریتم تقسیم و حل» تلقی شود. از این رو، بعضی از مؤلفان درعوض از نام «کاهش و حل» استفاده می‌کنند. این الگوریتم‌ها می‌توانند کارآمدتر از الگوریتم‌های تقسیم و حل معمولی، پیاده‌سازی شوند. به عنوان مثال، در صورت استفاده از رابطهٔ بازگشتی، این الگوریتم‌ها می‌توانند به حلقه‌های ساده تبدیل شوند.
معمولاً صحت یک الگوریتم تقسیم و حل به کمک استقرای ریاضی اثبات، و هزینهٔ محاسباتی آن نیز معمولاً از طریق حل روابط بازگشتی تعیین می‌شود.
تقسیم و حل

الگوی تقسیم و حل اغلب برای یافتن راه حل بهینه از یک مسئله استفاده می‌شود. ایده اصلی این است که یک مسئلهٔ معین را به دو یا چند زیرمجموعه مشابه، اما ساده‌تر تقسیم کنیم تا به نوبه خود آنها را حل کند و راه حل‌های خود را برای حل مسئله مورد نظر تنظیم کند. مسئله‌های بسیار ساده به‌طور مستقیم حل می‌شود. به عنوان مثال، برای مرتب کردن یک لیست معین از اعداد طبیعی، آن را به دو لیست به طول n / 2 تقسیم می‌کنیم، هر یک را به نوبه خود مرتب می‌کنیم و هر دو نتیجه را به‌طور مناسب در هم ادغام می‌کنیم تا نسخه مرتب شده لیست به‌دست آید (نگاه کنید به تصویر). در این مثال لیست‌های با طول یک نیاز به مرتب‌سازی (حل) ندارند. این روش به الگوریتم مرتب‌سازی ادغامی معروف است.
تاریخچه

ایدهٔ اصلی روش تقسیم و حل توسط آناتولی کاراتسوبا در سال ۱۹۶۰ در قالب الگوریتمی برای ضرب کردن دو عدد n رقمی با پیچیدگی زمانی  O(n^{\log _{2}3}) ارائه شد. در نتیجه این الگوریتم که امروزه الگوریتم کاراتسوبا نامیده می‌شود، فرضیه آندری کولموگوروف که طبق آن سریع‌ترین الگوریتم ضرب دارای پیچیدگی  O(n^{2}) است نقض شد. تلاش کولموگروف در کنار کشف کاراتسوبا، کمک شایانی به آغاز مطالعهٔ کارایی الگوریتم‌ها کرد.
مثال‌های قدیمی

جستجوی دودویی، الگوریتم تقسیم و حلی که در آن مسئلهٔ اصلی متوالیاً به زیر‌مسئله‌هایی یکتا با اندازهٔ تقریبی نصف مسئلهٔ اصلی تفکیک می‌شود، پیشینهٔ دور و درازی دارد. ایدهٔ استفاده از یک لیست مرتب شده از عناصر به منظور سهولت بخشیدن در جستجو به ۲۰۰ سال پیش از میلاد، در بابل بازمی‌گردد، در حالی که یک توصیف واضح از الگوریتم در کامپیوتر اولین بار قرن‌ها بعد در سال ۱۹۴۶ در مقاله‌ای توسط جان مارچلی بیان شد. الگوریتم تقسیم و حلِ قدیمی دیگر الگوریتم اقلیدس در محاسبهٔ بزرگ‌ترین مقسوم‌علیه مشترک دو عدد (از طریق کاهش اعداد به زیرمسئله‌های کوچک‌تر، و کوچک‌تر یا مساوی) است، که به قرن‌ها پیش از میلاد بازمی‌گردد. یک مثال قدیمی دیگر از الگوریتم تقسیم و حل با زیرمسئله‌های چندگانه، توصیفی بود که گاوس در سال ۱۸۰۵ از چیزی که امروزه الگوریتم تبدیل سریع فوریه (FFT) نامیده می‌شود، ارائه داد؛ هر چند او از لحاظ کمّی، پیچیدگی زمانی این الگوریتم را تحلیل و بررسی نکرد و FFTها تا یک قرن بعد که دوباره کشف شدند فراموش شدند.
یک الگوریتم تقسیم و حلِ دو‌زیر‌مسئله‌ایِ قدیمی که به‌طور ویژه برای کامپیوترها توسعه یافته، الگوریتم مرتب‌سازی ادغامی می‌باشد که توسط جان فون نویمن در سال ۱۹۵۴ ابداع شد.
مثال قابل توجه دیگر، الگوریتمی است که توسط کاراتسوبا در سال۱۹۶۰ ابداع شده و می‌تواند دو عدد n رقمی را در O(n^{\log _{2}3}) ضرب کند. این الگوریتم، حدس اندری کولماگوراف 'که در سال ۱۹۵۶ بیان شد و  \Omega (n^{2}) عمل را برای انجام ضرب مذکور لازم می‌دانست را رد کرد.
یک مثال دیگر از یک الگوریتم تقسیم و حل که در ابتدا کامپیوترها را شامل نمی‌شد، الگوریتم ارائه شده توسط «ناث متدی» بود که در یک دفتر پست برای آدرس‌دهی نامه‌ها استفاده می‌شد: نامه‌ها در کیف‌های جداگانه برای مناطق مختلف جغرافیایی مرتب می‌شدند، در هر کدام از این کیف‌ها نیز نامه‌ها در دسته‌هایی مربوط به نواحی کوچک‌تر مرتب می‌شدند و به همین ترتیب؛ تا زمانی که نامه‌ها به مقصد برسند. این الگوریتم نوعی مرتب‌سازی سطلی است که در سال ۱۹۲۹ برای ماشین‌های مرتب‌سازی کارت پانچ ارائه شد.
مزایا > حل مسائل دشوار

تقسیم و حل ابزاری قدرتمندی برای حل مسائل دشوار مفهومی، همانند معمای باستانی برج هانوی است. همهٔ چیزی که حل این روش نیاز دارد پیدا کردن راهی است برای شکستن مسئله به چند زیرمسئله، حل حالات جزئی و ترکیب زیر‌مسئله‌ها به مسئلهٔ اصلی.
مزایا > کارایی الگوریتم

الگوی تقسیم و حل اغلب به یافتن الگوریتم‌های کارآمد کمک می‌کند. برای مثال این الگوریتم راه‌گشای روش‌های ضرب سریع کاراتسوبا، الگوریتم‌های مرتب‌سازی سریع و ادغامی، و همچنین تبدیل‌های سریع فوریر بود.
در تمام این مثال‌ها راهبردِ حل و تقسیم منجر به بهینه‌سازی پیچیدگی محاسباتی راه حل می‌شود. برای مثال اگر حالت‌های پایه، اندازهٔ ثابت کران‌داری داشته‌باشند و عمل تفکیک مسئله و ترکیب جواب‌های جزئی به نسبت اندازهٔ مسئله (n) باشد آنگاه یک تعداد محدود p از زیر‌مسئله‌ها با اندازهٔ  \backsim np در هر مرحله وجود دارد و هزینهٔ الگوریتم تقسیم و حل  O(n\log n) خواهد بود.
مزایا > تطابق

الگوریتم‌های تقسیم و حل ذاتاً برای اجرا در ماشین‌های چندپردازنده‌ای سازگارند؛ به ویژه برای سیستم‌هایی با حافظه‌اشتراکی که ارتباط داده‌ها بین پردازنده‌ها به برنامه‌ریزی پیشرفته نیازی ندارد، چرا که زیرمسئله‌های متمایز قابل اجرا بر روی پردازنده‌های مختلف می‌باشند
مزایا > دسترسی به حافظه

الگوریتم‌های تقسیم و حل در کل به دنبال بهینه ساختن دسترسی به حافظه‌های پنهان هستند. چون زمانی که زیرمسئله به اندازهٔ کافی کوچک باشد، آن زیر مسئله و تمام زیرمسئله‌های آن می‌توانند بدون دسترسی به حافظه اصلی که کندتر است، در داخل حافظهٔ پنهان حل شوند. الگوریتمی که به منظور اینچنین دسترسی به حافظهٔ پنهان طراحی می‌شود، cache oblivious (بی‌توجه به حافظهٔ پنهان)، نامیده می‌شود؛ چرا که اندازهٔ حافظهٔ پنهان را به عنوان یک پارامتر آشکار، در برندارند.
علاوه بر این، الگوریتم‌های تقسیم و حل می‌توانند در بسیاری از الگوریتم‌های مهم مانند انواع مرتب‌سازی و ضرب ماتریس‌ها استفاده شوند. به طریقی مشابه، الگوریتم‌های بهینهٔ cache oblivious (بی‌توجه به حافظهٔ پنهان)، چنان‌که می‌توان اثبات کرد، به صورت بهینه و از دید مجانبی و صرف‌نظر از اندازهٔ حافظهٔ پنهان، از الگوریتم‌های تقسیم و حل استفاده می‌کنند. در مقابل، راهبرد سنتیِ به کار بستن حافظهٔ پنهان، بلاک‌بندی می‌باشد؛ که در آن، مسئله به قطعه‌هایی از اندازه‌های مورد نیاز تقسیم می‌شود. این الگوریتم همچنین می‌تواند به‌طور بهینه از حافظهٔ پنهان استفاده کند، ولی فقط زمانی که الگوریتم، برای اندازهٔ خاصی از حافظهٔ پنهان در یک ماشین ویژه، مناسب‌سازی شده باشد.
در سیستم‌های حافظه‌ای سلسله مراتبی مزیت مشابهی وجود دارد. همانند NUMA یا حافظهٔ مجازی و نیز برای سطوح چندگانهٔ حافظهٔ پنهان. زمانی که یک زیرمسئله به اندازهٔ کافی کوچک باشد، می‌تواند بدون دسترسی به سطوح بالاتر (آهسته‌تر)، در داخل سطح مفروض از سلسله‌مراتب حل شود.
معایب

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

الگوریتم‌های تقسیم و حل معمولاً به صورت توابع بازگشتی پیاده‌سازی می‌شوند. در این حالت، زیرمسئله‌های جزئی براساس زیر‌مسئله‌ای که در حال حل شدن است، به صورت خودکار در پشتهٔ فراخوانی ذخیره می‌شوند.
روش تقسیم و حل یک روش بالا به پایین است.
حل یک نمونهٔ سطح بالای مسئله با به‌دست آوردن حل نمونه‌های کوچکتر حاصل می‌شود.
هنگام پی ریزی یک الگوریتم بازگشتی، باید:
راهی برای به دست آوردن حل یک نمونه از روی حل یک یا چند نمونه کوچک‌تر طراحی کنیم.
شرط (شرایط) نهایی نزدیک شدن به نمونه (های) کوچک‌تر را تعیین کنیم.
حل را در حالت شرط (شرایط) نهایی تعیین کنیم
روش بازگشتی اجازه بیان راه حل یک مسئله را به‌طور مختصر و مفید می‌دهد. مسئله‌ای که به صورت بازگشتی حل می‌شود باید بتواند به مسائل کوچک‌تر تقسیم بشود و حل مسائل کوچک به همان روش مسئله بزرگ قابل انجام باشد. مسئله کوچک‌تر به مسئله کوچک‌تری شکسته می‌شود تا سرانجام یه کوچک‌ترین اندازه مسئله برسد که حالت پایه نامیده می‌شود و می‌تواند بدون استفاده از بازگشتی حل شود.
یک مثال متعارف الگوریتم بازگشتی ضابطه تابع فاکتوریل  f(n) است:
مقدار تابع برای  f(3) به صورت زیر محاسبه می‌شود:
f
(
3
)
=
3
f
(
3
−
1
)
=
3
f
(
2
)
=
3
×
2
f
(
2
−
1
)
=
3
×
2
f
(
1
)
=
3
×
2
×
1
=
6


{\textstyle f(3)=3f(3-1)=3f(2)=3\times 2f(2-1)=3\times 2f(1)=3\times 2\times 1=6}
بعضی الگوریتم‌های بازگشتی توسط تابع بازگشتی پیاده‌سازی می‌شود. تابع بازگشتی (recursive function) تابعی است که خودش را فراخوانی می‌کند.
تابع بازگشتی مشابه توابع دیگر کار می‌کند. برای هر فراخوانی بازگشتی یک نمونهٔ جدید از تابع در پشته ایجاد می‌شود.
مثال تابع بازگشتی محاسبه فاکتوریل یک عدد صحیح:
fact(int n)
{
    if (n <= 1)
        return 1;
    else
        return n * fact(n-1);
}
همان تابع به صورت غیر بازگشتی (توجه کنید که به دو متغیر موقت نیاز است):
fact(int n)
{
    int tmp;
    for(int i = 1;i <= x;i ++)
        tmp *= i;
    return i;
}
بازگشتی در مقایسه با غیر بازگشتی

در مسئله بازگشتی نیاز داریم یک زیرساختار بازگشتی داشته باشیم. راه حل بعضی از مسائل به‌طور بازگشتی است چون احتیاج به نگهداری حالت قبلی دارند (ولی می‌دانیم که هر مسئله بازگشتی را می‌توانیم به صورت غیر بازگشتی بنویسیم) الگوریتم پیمایش درخت(tree traversal)، تابع اکرمن(Ackermann) و الگوریتم‌های حل و تقسیم مانند مرتب‌سازی سریع (Quicksort) همگی معمولاً صورت بازگشتی هستند. همه این الگوریتم‌ها می‌توانند به صورت غیربازگشتی با کمک پشته هم پیاده شوند اما نیاز به پشته مزیت راه حل غیر بازگشتی را از بین می‌برد.
تابع غیر بازگشتی احتمالاً در عمل کمی سریعتر از نسخه بازگشتی آن اجرا می‌شود چون تابع غیر بازگشتی بار اضافه فراخوانی تابع (function-call) را به اندازه تابع بازگشتی نخواهد داشت و این بار اضافی در بعضی زبان‌های برنامه‌نویسی نسبتاً بالا است.
یک دلیل دیگر برای ترجیح غیربازگشتی به بازگشتی این است که فضای پشته قابل دسترس کمتر از فضای قابل دسترس در حافظه آزاد (heap)است؛ و الگوریتم‌های بازگشتی تمایل به فضای پشته بیشتری نسبت به غیر بازگشتی دارند.
بازگشتی در مقایسه با غیر بازگشتی > پشته کردن صریح

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

در پیاده‌سازی‌های بازگشتیِ الگوریتم‌های حل و تقسیم(D&C)، باید از وجود حافظهٔ تخصیص داده‌شدهٔ مورد نیاز برای پشتهٔ بازگشت اطمینان حاصل شود، درغیراین‌صورت ممکن است به دلیل سرریز پشته. ، اجرا با شکست مواجه شود. خوشبختانه، الگوریتم‌های D&Cای که از لحاظ زمانی کارآمد هستند، اغلب، تا حدودی بازگشتی هستند. به عنوان مثال، الگوریتم مرتب‌سازی سریع می‌تواند طوری پیاده‌سازی شود که هرگز به بیشتر از  \log _{2}n فراخوانی بازگشتی تودرتو برای مرتب کردن  n عنصر نیاز نداشته‌باشد.
ممکن است اجتناب از سرریز شدن پشته، به هنگام استفاده از روال‌های بازگشتی دشوار باشد، چرا که بسیاری از کامپایلرها فرض می‌کنند که پشتهٔ بازگشت ناحیه‌ای است مجاور حافظه، و بعضی از آن‌ها یک مقدار ثابت از حافظه را برای آن تخصیص می‌دهند. همچنین ممکن است کامپایلرها اطلاعاتی بیشتر از آنچه که واقعاً نیاز است را در پشتهٔ بازگشت ذخیره کنند، همانند آدرس برگشت، پارامترهای تغییرناپذیر، و متغیرهای درونی روال؛ بنابراین، خطر سرریز شدن پشته می‌تواند با حداقل کردن پارامترها و متغیرهای درونی روال بازگشتی، یا با استفاده از یک ساختار پشتهٔ صریح، کاهش یابد.
بازگشتی در مقایسه با غیر بازگشتی > انتخاب حالات پایه

در هر الگوریتم بازگشتی، آزادی قابل توجهی در انتخاب حالات پایه(زیرمسئله‌های کوچکی که به منظور پایان دادن به بازگشت، مستقیماً حل می‌شوند) وجود دارد.
انتخاب کوچک‌ترین یا آسان‌ترین حالت پایهٔ ممکن، بهتر است و معمولاً منجر به مسئله‌های آسان‌تر می‌شود، چرا که حالات کمتری برای رسیدگی وجود دارند که حلشان هم ساده‌تر است. به عنوان مثال، یک الگوریتم FFT می‌تواند به بازگشت پایان دهد وقتی که ورودی یک نمونهٔ یکتا باشد، و الگوریتم مرتب‌سازی لیستِ «مرتب‌سازی سریع» زمانی پایان می‌یابد که ورودی، لیست خالی باشد؛ در هر دو مثال تنها یک حالت پایه برای بررسی وجود دارد، که به هیچ پردازشی هم نیاز ندارد.
از سوی دیگر اگر بازگشت در حالات نسبتاً بزرگ متوقف شود، معمولاً کارایی بهبود می‌یابد؛ که هرکدام از این حالات به صورت غیربازگشتی حل شوند، که به یک الگوریتم چندگانه منجر می‌شود. این روش، از فراخوانی‌های بازگشتی که کار اندکی انجام داده یا اصلاً کاری انجام نمی‌دهند، اجتناب می‌ورزد و همچنین ممکن است استفاده از الگوریتم‌های غیربازگشتی خاصی که برای آن، حالات پایه کارآمدتر از بازگشتِ صِرف می‌باشند را میسر سازد. از آن جایی که یک الگوریتم تقسیم و حل، سرانجام، هر نمونه از مسئله یا زیرمسئله را به تعداد زیادی نمونهٔ پایه تقسیم می‌کند، این نمونه‌های پایه هزینهٔ کلی الگوریتم را رقم می‌زنند، علی‌الخصوص زمانی که هزینهٔ کلیِ تقسیم و ترکیب پایین باشد. توجه داشته باشید که این ملاحظات به این‌که آیا بازگشت به واسطهٔ کامپایلر پیاده‌سازی شده‌است یا به کمک یک پشتهٔ صریح، بستگی ندارد.
بنابراین، به عنوان مثال، بسیاری از پیاده‌سازی‌های کتابخانه‌ایِ مرتب‌سازی سریع، وقتی که تعداد عناصری که قرار است مرتب شوند به اندازهٔ کافی کوچک باشد، به یک الگوریتم مرتب‌سازی درجی سادهٔ مبتنی بر حلقه (یا چیزی شبیه آن) پرش می‌کنند. توجه شود که، اگر لیست خالی تنها حالت پایه بود، مرتب‌سازی یک لیست با n ورودی منجر به n +۱ فراخوانی مرتب‌سازی سریع خواهدشد که کاری انجام نداده و فوراً برمی‌گردند. افزایش حالات پایه به لیست‌هایی با اندازهٔ ۲ یا کم‌تر، بیشترِ این فراخوانی‌هایی که کاری انجام نمی‌دهند را حذف خواهد کرد و به‌طور کلی به منظور کاهش زمان مصرفی برای فراخوانی‌ها یا دستکاری‌های پشته، معمولاً از حالت پایه‌ای بزرگ‌تر از ۲ استفاده می‌شود.
همچنین، می‌توان حالات پایهٔ بزرگی را به کار بست که کماکان از الگوریتم تقسیم و حل استفاده کنند. اما پیاده‌سازی الگوریتم برای مجموعه‌های از پیش تعیین‌شده با اندازهٔ ثابت می‌تواند کاملاً به کدی بدون هیچ‌گونه بازگشت، حلقه یا عبارات شرطی (بسته به روش ارزیابی جزئی) تبدیل شود. به عنوان مثال، این راهبرد در بعضی از پیاده‌سازی‌های کارآمد FFT که در آن‌ها حالات پایه، پیاده‌سازی‌های تبدیل‌شدهٔ الگوریتم‌های تقسیم و حل FFT برای یک مجموعه از اندازه‌های ثابت می‌باشند، مورد استفاده قرار گرفته‌است. بعضی اوقات تعداد زیادِ حالات پایهٔ جدا از هم که درخورِ پیاده‌سازی مستقل هستند به روش‌های تولید کد منبع ایجاد می‌شوند.
بازگشتی در مقایسه با غیر بازگشتی > به اشتراک گذاری زیرمسئله‌های تکراری

برای بعضی مثال‌ها بازگشت انشعابی ممکن است یک مسئله را بارها ارزیابی کند. در چنین مواردی ممکن است شناسایی و ذخیرهٔ راه حل‌های این زیرمسئله‌های مشابه، خالی از لطف نباشد. این روش به «به خاطرسپاری» معروف بوده و روشی معمول و شناخته‌شده می‌باشد. این شیوه به الگوریتم‌های تقسیم و حل از پایین به بالا مانند برنامه‌نویسی پویا و تجزیه و تحلیل نمودار منجر می‌شود.
رویکرد تقسیم و تسخیر برای مرتب کردن لیست (۳۸، ۲۷، ۴۳، ۳، ۹، ۸۲، ۱۰) در افزایش ترتیب. نیمه بالایی: تقسیم به سابلیست‌ها. mid: یک لیست یک عنصر با اهمیت طبقه‌بندی شده‌است. نیمه پایین: آهنگسازی سابلیست‌های مرتب شده.
انقباضات برکستون هیکس

انقباضات برکستون هیکس (در انگلیسی: Braxton Hicks contractions) که به نام انقباضات پیش از زایمان، انقباضات تمرینی یا انقباضات کاذب زایمانی هم نامیده می‌شود، گاهی ممکن است در حدود هفته ۶ ام بارداری هم شروع شود، ولی معمولاً تا ۳ ماههٔ دوم یا سوم بارداری حس نمی‌شود.
علائم

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

انقباضات برکستون هیکس در واقع افزایش ضخامت عضلات رحم به مدت ۱ یا ۲ دقیقه است و به نظر می‌رسد که بدن برای زایمان آماده شده باشد. همهٔ خانم‌های باردار ممکن است این انقباضات را حس نکنند. به نظر نمی‌رسد که بخشی از روند افاسمان گردن رحم هم باشد.
عوامل تسکین دهنده

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

تاراس یورویچ ختی (به روسی: Тарас Юрьевич Хтей) (زاده ۲۲ مه ۱۹۸۲ در لووف) بازیکن والیبال دو ملیتی اکراینی روسی عضو تیم ملی والیبال روسیه و باشگاه بلگوری بلگورود است. تاراس از ستاره های تیم ملی روسیه محسوب می‌شود و به همراه روسیه مدال برنز بازی های المپیک تابستانی ۲۰۰۴ و طلای بازیهای المپیک تابستانی ۲۰۱۲ را به دست آورد.
ماه خونین (فیلم ۱۹۹۰)

| ماه خونی | ماه خونی |
| --- | --- |
پوستر اصلی: پوستر اصلی
کارگردان: الک میلز
تهیه‌کننده: استنلی اوتول
نویسنده: رابرت برنان
موسیقی: برایان می
فیلم‌بردار: جان استوکس
تدوین‌گر: دیوید هالیدی
تاریخ‌های انتشار:  ۲۲ مارس ۱۹۹۰ (۱۹۹۰-03-۲۲) (استرالیا)  
مدت زمان: ۱۰۰ دقیقه
کشور: استرالیا
زبان: انگلیسی 
فروش گیشه: ۴۱۹ هزار دلار (استرالیا)
ماه خونین (به انگلیسی: Bloodmoon) یک فیلم اسلشر استرالیایی محصول سال ۱۹۹۰ به کارگردانی الک میلز با بازی لئون لیسک، کریستین آمور، ایان ویلیامز، هلن تامسون و کریگ کرونین است.
ماه دروغگو

| ماه دروغگو | ماه دروغگو |
| --- | --- |
کارگردان: دیوید فیشر
بازیگران: مت دیلون سیندی فیشر کریستوفر کانلی
تاریخ‌های انتشار:  ۱۰ سپتامبر ۱۹۸۲ (۱۹۸۲-09-۱۰)  
مدت زمان: ۱۰۶ دقیقه
کشور: ایالات متحده
زبان: انگلیسی 
هزینهٔ فیلم: ۳٫۲ میلیون دلار
ماه دروغگو (به انگلیسی: Liar's Moon) فیلمی محصول سال ۱۹۸۲ و به کارگردانی دیوید فیشر است. در این فیلم بازیگرانی همچون مت دیلون، سیندی فیشر، کریستوفر کانلی، هویت اکستون، برودریک کرافورد، ایوان دکارلو، سوزان تایرل و ریچارد مول ایفای نقش کرده‌اند.
استپنویه (شهرستان رودینسکی، سرزمین آلتای)

| استپنویه Степное | استپنویه Степное |
| --- | --- |
Selo: Selo
استپنویهنمایش نقشه Altai Kraiاستپنویهنمایش نقشه روسیه: استپنویهنمایش نقشه Altai Kraiاستپنویهنمایش نقشه روسیه
مختصات: ۵۲°۳۸′ شمالی ۸۰°۲۸′ شرقی﻿ / ﻿۵۲٫۶۳۳°شمالی ۸۰٫۴۶۷°شرقی﻿ / 52.633; 80.467: مختصات: ۵۲°۳۸′ شمالی ۸۰°۲۸′ شرقی﻿ / ﻿۵۲٫۶۳۳°شمالی ۸۰٫۴۶۷°شرقی﻿ / 52.633; 80.467
کشور: روسیه
ناحیه‌های فدرال روسیه: سرزمین آلتای
شهر: شهرستان رودینسکی
منطقهٔ زمانی: یوتی‌سی +۷:۰۰
استپنویه (به لاتین: Stepnoye) یک منطقهٔ مسکونی در روسیه است که در سرزمین آلتای واقع شده‌است.
لین، داکوتای جنوبی

| لین، داکوتای جنوبی | لین، داکوتای جنوبی |
| --- | --- |
شهرک: شهرک
Location in Jerauld County and the state of داکوتای جنوبی: Location in Jerauld County and the state of داکوتای جنوبی
کشور: ایالات متحده آمریکا
State: داکوتای جنوبی
شهرستان: Jerauld
Incorporated: 1907
مساحت: مساحت
 • کل: ۰٫۴۷ مایل مربع (۱٫۲۲ کیلومتر مربع)
 • خشکی: ۰٫۴۷ مایل مربع (۱٫۲۲ کیلومتر مربع)
 • آب: ۰ مایل مربع (۰ کیلومتر مربع)
ارتفاع: ۱۳۷۵ فوت (۴۱۹ متر)
جمعیت (2010): جمعیت (2010)
 • کل: ۵۹
 • برآورد (2011): ۵۸
 • تراکم: ۱۲۵٫۵/مایل مربع (۴۸٫۵/کیلومتر مربع)
منطقهٔ زمانی: یوتی‌سی -۶ (Central (CST))
 • تابستانی (DST): یوتی‌سی -۵ (CDT)
زیپ‌کد: 57358
کد منطقه: 605
FIPS code: 46-35780
GNIS feature ID: 1256052
لین(به انگلیسی: Lane) شهری در ایالت داکوتای جنوبی کشور ایالات متحده آمریکا است که جمعیت آن در سرشماری سال ۲۰۱۰ میلادی، ۵۹ نفر بوده‌است.
مدیریت دارایی سازمانی

مدیریت دارایی سازمانی (انگلیسی: Enterprise asset management) به مدیریت نگهداری از دارایی‌های فیزیکی یک سازمان، در دوران چرخه حیات هر یک از این دارایی‌ها اطلاق می‌شود. مدیریت دارایی سازمانی در راستای برنامه‌ریزی، بهینه‌سازی، اجرا و پیگیری فعالیت‌های نگهداری و با اولویت‌ها، مهارت‌ها، مواد، ابزار و اطلاعات سازمانی، مورد استفاده قرار می‌گیرد. مدیریت دارایی سازمانی مراحلی چون طراحی، ساخت، راه‌اندازی، عملیات، تعمیر و نگهداری، بروزرسانی یا جایگزینی کارخانه، تجهیزات و تأسیسات سازمانی را پوشش می‌دهد. این دارایی‌ها ممکن است دارایی‌های ثابت مانند ساختمان‌ها، کارخانه‌ها، ماشین‌آلات، یا دارایی‌های متحرک مانند وسایل نقلیه، کشتی‌ها و تجهیزات را دربر گیرد. مدیریت چرخه عمر دارایی‌های فیزیکی با ارزش، برای مدیریت نیازمند برنامه‌ریزی و اجرای دقیق می‌باشد.
نیکلایفسک-نا-آموره

شهر نیکلایفسک-نا-آموره (به روسی: Николаевск-на-Амуре) در کشور روسیه و در کرای خاباروفسک واقع شده‌است.
محوطه کچی بلاغی

| محوطه کچی بلاغی | محوطه کچی بلاغی |
| --- | --- |
نام: محوطه کچی بلاغی
کشور: ایران
استان: استان اردبیل
شهرستان: شهرستان مشگین‌شهر
اطلاعات اثر: اطلاعات اثر
کاربری: محوطه
اطلاعات ثبتی: اطلاعات ثبتی
شمارهٔ ثبت: ۲۵۸۴۶
تاریخ ثبت ملی: ۲۶ اسفند ۱۳۸۷
محوطه کچی بلاغی مربوط به عصر آهن ۳ است و در شهرستان مشگین‌شهر، بخش ارشق، دهستان ارشق مرکزی، روستای کچی بلاغی علیا واقع شده و این اثر در تاریخ ۲۶ اسفند ۱۳۸۷ با شمارهٔ ثبت ۲۵۸۴۶ به‌عنوان یکی از آثار ملی ایران به ثبت رسیده است.
مرسی گریوز

| مرسی گریوز> اطلاعات انتشاراتی | مرسی گریوز> اطلاعات انتشاراتی |
| --- | --- |
ناشر: دی‌سی کامیکس
نخستین حضور: سوپرمن: مجموعه پویانمایی (۱۹۹۶) اولین حضور در کمیک‌ها: ماجراجویی‌های سوپرمن شمارهٔ ۱ (نوامبر ۱۹۹۶)
پدیدآور: پال دینی بروس تیم
اطلاعات داستانی: اطلاعات داستانی
نام کامل: مرسدس «مرسی» گریوز
گونه: آمازون‌ها
وابستگی به تیم: شرکت لکس
هم‌دستان: لکس لوتر
توانایی‌ها:  مهارت در هنرهای رزمی و مبارزات تن‌به‌تن 
مرسدس «مرسی» گریوز (به انگلیسی: Mercy Graves) یک شخصیت خیالی در کتاب‌های کامیک آمریکایی منتشر شده توسط دی‌سی کامیکس است. شخصیت مرسی گریوز توسط پال دینی و بروس تیم خلق شده‌است؛ که برای اولین بار در مجموعه تلویزیونی سوپرمن: مجموعه پویانمایی (۱۹۹۶)، به عنوان دستیار و محافظ شخصی لکس لوتر حضور پیدا کرد. او از آن زمان تا کنون به کتاب‌های کامیک منتشر شده توسط دی‌سی کامیکس نقل مکان کرد.
تائو اوکاموتو در فیلم لایو اکشن بتمن در برابر سوپرمن: طلوع عدالت (۲۰۱۶) وظیفه بازی در این نقش را بر عهده داشت. رونا میترا در مجموعه تلویزیونی سوپرگرل در این نقش ظاهر شد. همچنین ناتالی گامید در فصل دوم سریال تایتان‌ها، و مایا ارسکین در فیلم پویانمایی رایانه‌ای ابر حیوانات لیگ دی‌سی (۲۰۲۲) در نقش مرسی گریوز ظاهر شد.
هسدالن

| هسدالن | هسدالن |
| --- | --- |
دهکده: دهکده
هسدالنمکان قرارگیری دهکدهنمایش نقشه تروندلاگهسدالنهسدالن (نروژ)نمایش نقشه نروژ: هسدالنمکان قرارگیری دهکدهنمایش نقشه تروندلاگهسدالنهسدالن (نروژ)نمایش نقشه نروژ
مختصات: ۶۲°۴۷′۳۶″شمالی ۱۱°۱۱′۱۸″شرقی﻿ / ﻿۶۲٫۷۹۳۳°شمالی ۱۱٫۱۸۸۳°شرقی﻿ / 62.7933; 11.1883: مختصات: ۶۲°۴۷′۳۶″شمالی ۱۱°۱۱′۱۸″شرقی﻿ / ﻿۶۲٫۷۹۳۳°شمالی ۱۱٫۱۸۸۳°شرقی﻿ / 62.7933; 11.1883
کشور: نروژ
Region: مرکز نروژ
County: تروندلاگ
District: گالدالن
Municipality: هولتالن
ارتفاع: ۶۱۷ متر (۲۰۲۴ فوت)
منطقهٔ زمانی: یوتی‌سی +۰۱:۰۰ (CET)
 • تابستانی (DST): یوتی‌سی +۰۲:۰۰ (CEST)
کد پستی: ۷۳۸۰ Ålen
هسدالن دهکده‌ای در شهرداری هولتولن در استان تروندلاگ نروژ است. هسدالن همچنین به ۱۵ کیلومتر (۹٫۳ مایل) دره طولانی که روستا را احاطه کرده‌است نیز گفته می‌شود. هسدالن در قسمت مرکزی روستا به طول تقریبی ۱۲۰ کیلومتر (۷۵ مایل) واقع شده‌است، همچنین از جنوب مشرف به شهر تروندهایم، تقریباً ۳۵ کیلومتر (۲۲ مایل) شمال شهر معدنی رویروس و حدود ۱۲ کیلومتر (۷٫۵ مایل) با جنوب غربی روستای رنبیگدا فاصله دارد. حدود ۱۵۰ نفر در روستا و دره اطراف آن زندگی می‌کنند.
کلیسای هسدالن نیز در این دهکده واقع شده‌است و با دریاچه اوینگن واقع در جنوب غربی روستا، ۷ کیلومتر (۴٫۳ مایل) فاصله دارد. منطقه هسدالن به دلیل وقوع پدیده‌های نورانی غیرقابل توضیح به نام نورهای هسدالن شهرت دارد. این پدیده توسط هسدالن ای‌ام‌اس نظارت می‌شود.
نام

عنصر اولیه نام روستا رودخانه محلی هسا است و آخرین عنصر دالون، است که به معنی دیل یا دره را می‌دهد.
نیکلای اوروسف

| نیکلای اوروسف | نیکلای اوروسف |
| --- | --- |
زادهٔ: ۳ اکتبر ۱۹۶۲
ملیت: ایالات متحده آمریکا
نیکلای اوروسف (روسی: Николай Владимирович Урусов؛ زادهٔ ۳ اکتبر ۱۹۶۲) روزنامه‌نگار اهل ایالات متحده آمریکا است. او از ۲۰۰۴ تا ۲۰۱۱ منتقد معماری نیویورک تایمز بود.