انواع گراف :
1. بدون جهت (Undirected): یالها بدون جهت. 🎯
2. جهتدار (Directed): یالها با جهت مشخص. ➡️
3. خلوت (Sparse): یالها نسبت به گرهها کم. 🌿
4. متراکم (Dense): یالها نسبت به گرهها زیاد. 🏗
5. بدون وزن (Unweighted): یالها بدون وزن. ⚖️
6. وزندار (Weighted): یالها وزندار. 🏋️
7. بدون دور (Acyclic): بدون دور. 🚫🔄
8. چرخهای (Cyclic): دارای دور. 🔄
9. ساده (Simple): بدون حلقه یا یال موازی. ✅
10. غیر ساده (Non-simple): با حلقه یا یال موازی. 🚧
11. بدون برچسب (Unlabeled): بدون برچسب. ❌🏷
12. برچسبدار (Labeled): با برچسب. 🏷
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
1. بدون جهت (Undirected): یالها بدون جهت. 🎯
2. جهتدار (Directed): یالها با جهت مشخص. ➡️
3. خلوت (Sparse): یالها نسبت به گرهها کم. 🌿
4. متراکم (Dense): یالها نسبت به گرهها زیاد. 🏗
5. بدون وزن (Unweighted): یالها بدون وزن. ⚖️
6. وزندار (Weighted): یالها وزندار. 🏋️
7. بدون دور (Acyclic): بدون دور. 🚫🔄
8. چرخهای (Cyclic): دارای دور. 🔄
9. ساده (Simple): بدون حلقه یا یال موازی. ✅
10. غیر ساده (Non-simple): با حلقه یا یال موازی. 🚧
11. بدون برچسب (Unlabeled): بدون برچسب. ❌🏷
12. برچسبدار (Labeled): با برچسب. 🏷
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
ترانسفورمر دیفرانسیلی در مقابل ترانسفورمر معمولی
ترانسفورمر معمولی 🎯 تمایل به توجه به زمینههای نامربوط دارد، در حالی که ترانسفورمر دیفرانسیلی 🔍 توجه را به زمینههای مرتبط تقویت میکند و نویز را حذف میکند (بیتوجهی به زمینههای نامربوط).
چگونه ترانسفورمر دیفرانسیلی زمینههای نامربوط را نادیده میگیرد؟
- مکانیزم توجه دیفرانسیلی (differential attention) نمرات توجه را بهعنوان تفاوت بین دو نقشه توجه softmax جداگانه محاسبه میکند.
- این تفریق، نویز را حذف کرده و باعث ایجاد الگوهای توجه پراکنده میشود. 🌿
مزایای ترانسفورمر دیفرانسیلی
- ترانسفورمر دیفرانسیلی (DIFF Transformer) در مقایسه با ترانسفورمر معمولی در مقیاسهای مختلف، چه از نظر افزایش اندازه مدل و چه از نظر تعداد دادههای آموزشی، عملکرد بهتری دارد.
- مهمتر از آن، در کاربردهای عملی مانند مدلسازی با زمینه طولانی (long-context modeling) و بازیابی اطلاعات کلیدی (key information retrieval) مزیتهای قابل توجهی دارد. 🧠📚
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
ترانسفورمر معمولی 🎯 تمایل به توجه به زمینههای نامربوط دارد، در حالی که ترانسفورمر دیفرانسیلی 🔍 توجه را به زمینههای مرتبط تقویت میکند و نویز را حذف میکند (بیتوجهی به زمینههای نامربوط).
چگونه ترانسفورمر دیفرانسیلی زمینههای نامربوط را نادیده میگیرد؟
- مکانیزم توجه دیفرانسیلی (differential attention) نمرات توجه را بهعنوان تفاوت بین دو نقشه توجه softmax جداگانه محاسبه میکند.
- این تفریق، نویز را حذف کرده و باعث ایجاد الگوهای توجه پراکنده میشود. 🌿
مزایای ترانسفورمر دیفرانسیلی
- ترانسفورمر دیفرانسیلی (DIFF Transformer) در مقایسه با ترانسفورمر معمولی در مقیاسهای مختلف، چه از نظر افزایش اندازه مدل و چه از نظر تعداد دادههای آموزشی، عملکرد بهتری دارد.
- مهمتر از آن، در کاربردهای عملی مانند مدلسازی با زمینه طولانی (long-context modeling) و بازیابی اطلاعات کلیدی (key information retrieval) مزیتهای قابل توجهی دارد. 🧠📚
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
این ابزار برای کسانی که از PyTorch استفاده میکنند.
معرفی روش : VisualTorch
✅ یک ابزار اپنسورس در پایتون که به شما امکان میدهد مدلهای PyTorch را خیلی سریع و آسان بصریسازی کنید.
✅ به جای بررسی دستی شبکههای عصبیتان، با این ابزار میتوانید لایهها، پارامترها و گرافهای محاسباتی را بهصورت تصویری مشاهده کنید. این کار به شما کمک میکند تا سریعتر دیباگ کرده و مدلهایتان را بهینهتر تنظیم کنید.
🔗 برای دانلود و استفاده، فقط کافیست به گیتهاب زیر مراجعه کنید 👇
https://github.com/willyfh/visualtorch
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
معرفی روش : VisualTorch
✅ یک ابزار اپنسورس در پایتون که به شما امکان میدهد مدلهای PyTorch را خیلی سریع و آسان بصریسازی کنید.
✅ به جای بررسی دستی شبکههای عصبیتان، با این ابزار میتوانید لایهها، پارامترها و گرافهای محاسباتی را بهصورت تصویری مشاهده کنید. این کار به شما کمک میکند تا سریعتر دیباگ کرده و مدلهایتان را بهینهتر تنظیم کنید.
🔗 برای دانلود و استفاده، فقط کافیست به گیتهاب زیر مراجعه کنید 👇
https://github.com/willyfh/visualtorch
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
یک Heap یک نوع داده ساختار درختی است که ویژگیهای زیر را دارد:
🌳 ساختار کامل: یک heap همیشه یک درخت کامل است، به این معنی که تمام سطوح آن (به جز آخرین سطح) به طور کامل پر شدهاند و همه گرهها در آخرین سطح به سمت چپ قرار دارند.
⚖️ ویژگی heap:
- Max-Heap: در هر گره، مقدار والد بزرگتر یا مساوی مقدار فرزندانش است. بنابراین، بزرگترین عنصر در ریشه قرار دارد.
- Min-Heap: در هر گره، مقدار والد کوچکتر یا مساوی مقدار فرزندانش است. بنابراین، کوچکترین عنصر در ریشه قرار دارد.
🚀 دسترسی سریع به ریشه: در heap، عنصر ریشه همیشه بزرگترین (در max-heap) یا کوچکترین (در min-heap) عنصر است که دسترسی به آن با زمان ثابت O(1) انجام میشود.
🛠 درج و حذف: عملیات درج و حذف در heap به صورت منطقی انجام میشود، به طوری که پس از هر عملیات، ساختار درخت و ویژگی heap حفظ میشود. این عملیات معمولاً در زمان O(log n) انجام میشوند، زیرا باید از ریشه به برگ یا بالعکس پیمایش کنیم.
💡 کاربردها:
- صف اولویت: heap اغلب برای پیادهسازی صفهای اولویت استفاده میشود.
- الگوریتمهای مرتبسازی: مثل Heap Sort که از ویژگیهای heap برای مرتبسازی دادهها استفاده میکند.
- الگوریتمهای مسیریابی: مثل الگوریتم دیکسترا برای پیدا کردن کوتاهترین مسیرها.
این ویژگیها heap را به یک داده ساختار کارآمد برای بسیاری از کاربردها تبدیل کردهاند. 🎯
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
🌳 ساختار کامل: یک heap همیشه یک درخت کامل است، به این معنی که تمام سطوح آن (به جز آخرین سطح) به طور کامل پر شدهاند و همه گرهها در آخرین سطح به سمت چپ قرار دارند.
⚖️ ویژگی heap:
- Max-Heap: در هر گره، مقدار والد بزرگتر یا مساوی مقدار فرزندانش است. بنابراین، بزرگترین عنصر در ریشه قرار دارد.
- Min-Heap: در هر گره، مقدار والد کوچکتر یا مساوی مقدار فرزندانش است. بنابراین، کوچکترین عنصر در ریشه قرار دارد.
🚀 دسترسی سریع به ریشه: در heap، عنصر ریشه همیشه بزرگترین (در max-heap) یا کوچکترین (در min-heap) عنصر است که دسترسی به آن با زمان ثابت O(1) انجام میشود.
🛠 درج و حذف: عملیات درج و حذف در heap به صورت منطقی انجام میشود، به طوری که پس از هر عملیات، ساختار درخت و ویژگی heap حفظ میشود. این عملیات معمولاً در زمان O(log n) انجام میشوند، زیرا باید از ریشه به برگ یا بالعکس پیمایش کنیم.
💡 کاربردها:
- صف اولویت: heap اغلب برای پیادهسازی صفهای اولویت استفاده میشود.
- الگوریتمهای مرتبسازی: مثل Heap Sort که از ویژگیهای heap برای مرتبسازی دادهها استفاده میکند.
- الگوریتمهای مسیریابی: مثل الگوریتم دیکسترا برای پیدا کردن کوتاهترین مسیرها.
این ویژگیها heap را به یک داده ساختار کارآمد برای بسیاری از کاربردها تبدیل کردهاند. 🎯
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
دموکراتیزه کردن کارآمد مدلهای زبانی بزرگ (LLMs) پزشکی برای ۵۰ زبان از طریق ترکیبی از متخصصان خانوادههای زبانی
Github: https://github.com/freedomintelligence/apollomoe
Paper: https://arxiv.org/abs/2410.10626v1
Dataset: https://paperswithcode.com/dataset/mmlu
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Github: https://github.com/freedomintelligence/apollomoe
Paper: https://arxiv.org/abs/2410.10626v1
Dataset: https://paperswithcode.com/dataset/mmlu
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
ساختمان_داده-خلاصه-نصیر.pdf
738.1 KB
✨ جزوهای جامع و خلاصه از درس ساختمان داده از دانشگاه خواجه نصیرالدین طوسی، عالی برای مرور مطالب و همراه با نمونه سوالات کاربردی. 📝🔍
یک منبع مفید و ارزشمند برای آمادگی بهتر در امتحانات! 📚🚀
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
یک منبع مفید و ارزشمند برای آمادگی بهتر در امتحانات! 📚🚀
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
سلام دوستان عزیز👋🏻😉
امیدوارم حالتون خوب باشه. 🌟
اگر در درسهای رشته کامپیوتر نیاز به راهنمایی یا کمک دارین مخصوصا دوستانی که تازه وارد این رشته شدن، حتماً از ادمین کمک بگیرین. ادمین کانال ما همیشه آماده پاسخگویی به سوالات شما و ارائه مشاوره هست.
پس بدون هیچ نگرانی سوالاتتون رو بپرسید و از راهنماییهای مفید ادمین استفاده کنید. موفق باشید! 💻📚
برای ارتباط با ادمین به آیدی زیر پیام بدید.👇🏻👇🏻
✅ @Se_mohamad
امیدوارم حالتون خوب باشه. 🌟
اگر در درسهای رشته کامپیوتر نیاز به راهنمایی یا کمک دارین مخصوصا دوستانی که تازه وارد این رشته شدن، حتماً از ادمین کمک بگیرین. ادمین کانال ما همیشه آماده پاسخگویی به سوالات شما و ارائه مشاوره هست.
پس بدون هیچ نگرانی سوالاتتون رو بپرسید و از راهنماییهای مفید ادمین استفاده کنید. موفق باشید! 💻📚
برای ارتباط با ادمین به آیدی زیر پیام بدید.👇🏻👇🏻
✅ @Se_mohamad
💡 توجه ترکیبی از سرها (MoH) روشی جدید برای بهبود کارایی توجه چندسر در ترنسفورمرهاست. MoH هر سر توجه را مانند یک متخصص میبیند و به هر توکن اجازه میدهد مرتبطترین سرها را انتخاب کند. این روش بدون افزایش پارامترها، کارایی استنتاج را بهبود میبخشد. MoH به جای جمع ساده، از جمع وزنی استفاده کرده و انعطافپذیری بیشتری ارائه میدهد.
توجه ترکیبی از سرها (MoH) در مدلهای مختلف مانند ViT، DiT و LLMs نتایج چشمگیری داشته است. مثلاً MoH-ViT-B با فعالسازی 75٪ از سرهای توجه به دقت 84.9٪ در ImageNet-1K رسیده است.
همچنین مدلهایی مثل LLaMA3-8B با تنظیم به MoH، دقت بیشتری با سرهای کمتری دارند. MoH-LLaMA3-8B با 75٪ سرها، 2.4٪ بهتر از نسخه قبلی عمل کرده است.
https://arxiv.org/abs/2410.11842
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
توجه ترکیبی از سرها (MoH) در مدلهای مختلف مانند ViT، DiT و LLMs نتایج چشمگیری داشته است. مثلاً MoH-ViT-B با فعالسازی 75٪ از سرهای توجه به دقت 84.9٪ در ImageNet-1K رسیده است.
همچنین مدلهایی مثل LLaMA3-8B با تنظیم به MoH، دقت بیشتری با سرهای کمتری دارند. MoH-LLaMA3-8B با 75٪ سرها، 2.4٪ بهتر از نسخه قبلی عمل کرده است.
https://arxiv.org/abs/2410.11842
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
پیچیدگی زمانی (Time Complexity) برای عملیاتهای مختلف روی پشته (Stack)
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
الگوریتم Longest Common Subsequence (LCS) یکی از مسائل پایهای در نظریه رشتهها و الگوریتمهای پویا است. این الگوریتم طولانیترین زیررشتهی مشترک بین دو رشته را پیدا میکند که نیازی به پیوسته بودن ندارد اما ترتیب کاراکترها باید حفظ شود.
کاربردهای اصلی:
1. مقایسه و تشخیص شباهت رشتهها: در بررسی متون، رشتههای DNA، یا مقایسهی کدها استفاده میشود.
2. ویرایش فاصله (Edit Distance): محاسبه تعداد عملیات لازم (افزودن، حذف یا تغییر) برای تبدیل یک رشته به دیگری.
3. تطبیق نسخههای فایلها: در ابزارهایی مثل Git برای بررسی تغییرات بین نسخههای مختلف فایلها کاربرد دارد.
روش حل:
الگوریتم LCS با استفاده از برنامهریزی پویا حل میشود و یک جدول دو بعدی برای ذخیره طول LCS تا هر نقطه از رشتهها تشکیل میدهد.
پیچیدگی زمانی:
این الگوریتم با پیچیدگی زمانی O(n * m) اجرا میشود که در آن
مثال:
رشتههای
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
کاربردهای اصلی:
1. مقایسه و تشخیص شباهت رشتهها: در بررسی متون، رشتههای DNA، یا مقایسهی کدها استفاده میشود.
2. ویرایش فاصله (Edit Distance): محاسبه تعداد عملیات لازم (افزودن، حذف یا تغییر) برای تبدیل یک رشته به دیگری.
3. تطبیق نسخههای فایلها: در ابزارهایی مثل Git برای بررسی تغییرات بین نسخههای مختلف فایلها کاربرد دارد.
روش حل:
الگوریتم LCS با استفاده از برنامهریزی پویا حل میشود و یک جدول دو بعدی برای ذخیره طول LCS تا هر نقطه از رشتهها تشکیل میدهد.
پیچیدگی زمانی:
این الگوریتم با پیچیدگی زمانی O(n * m) اجرا میشود که در آن
n
و m
طول رشتههای ورودی هستند.مثال:
رشتههای
ABCBDAB
و BDCAB
را در نظر بگیرید. LCS این دو رشته زیررشتهی BCAB
با طول ۴ است.#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
مقاله با عنوان "SAM2Long: Enhancing SAM 2 for Long Video Segmentation with a Training-Free Memory Tree" احتمالاً بهبودهایی در روش SAM 2 برای بخشبندی ویدئوهای طولانی را بررسی میکند. این بهبودها شامل استفاده از درخت حافظه بدون نیاز به آموزش است.
Github: https://github.com/mark12ding/sam2long
Paper: https://arxiv.org/abs/2410.16268v1
HF: https://huggingface.co/papers/2410.16268
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Github: https://github.com/mark12ding/sam2long
Paper: https://arxiv.org/abs/2410.16268v1
HF: https://huggingface.co/papers/2410.16268
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
ریاضیات یادگیری ماشین:
چه تازه با یادگیری ماشین آشنا شده باشید و چه بخواهید دانش ریاضی خود را تقویت کنید، این مجموعه از منابع به شما کمک خواهد کرد. به مباحث مهمی مانند جبر خطی، حساب دیفرانسیل و بهینهسازی بپردازید تا پایههای قوی برای الگوریتمهای یادگیری ماشین بسازید.
https://github.com/dair-ai/Mathematics-for-ML
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
چه تازه با یادگیری ماشین آشنا شده باشید و چه بخواهید دانش ریاضی خود را تقویت کنید، این مجموعه از منابع به شما کمک خواهد کرد. به مباحث مهمی مانند جبر خطی، حساب دیفرانسیل و بهینهسازی بپردازید تا پایههای قوی برای الگوریتمهای یادگیری ماشین بسازید.
https://github.com/dair-ai/Mathematics-for-ML
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
استنفورد بهتازگی سخنرانی جدیدی با عنوان «ساخت مدلهای زبانی بزرگ (LLMs)» منتشر کرده است. تماشای این ویدئو را به همه توصیه میکنم.
«این سخنرانی نمای کلی و مختصری از فرآیند ساخت مدلی شبیه به ChatGPT ارائه میدهد که شامل پیشآموزش (مدلسازی زبان) و پسآموزش (تنظیم دقیق با دادههای برچسبدار و تقویت یادگیری از طریق بازخورد انسانی) است.
در هر بخش، به بررسی روشهای رایج جمعآوری دادهها، الگوریتمها و روشهای ارزیابی پرداخته میشود.»
https://www.youtube.com/watch?v=9vM4p9NN0Ts
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
«این سخنرانی نمای کلی و مختصری از فرآیند ساخت مدلی شبیه به ChatGPT ارائه میدهد که شامل پیشآموزش (مدلسازی زبان) و پسآموزش (تنظیم دقیق با دادههای برچسبدار و تقویت یادگیری از طریق بازخورد انسانی) است.
در هر بخش، به بررسی روشهای رایج جمعآوری دادهها، الگوریتمها و روشهای ارزیابی پرداخته میشود.»
https://www.youtube.com/watch?v=9vM4p9NN0Ts
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Large Language Model Course
https://github.com/mlabonne/llm-course?tab=readme-ov-file
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
https://github.com/mlabonne/llm-course?tab=readme-ov-file
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
📚 مسیر یادگیری ساختمان دادهها و الگوریتمها 💡
آمادهای تا هوش و خلاقیت خودت رو به چالش بکشی؟ 🚀 با یادگیری مفاهیمی مثل لیستهای پیوندی، پشتهها، صفها، گرافها، درختها و بسیاری از الگوریتمهای جذاب دیگه، میتونی قدم به دنیای برنامهنویسی حرفهای بذاری! 🔥
از الگوریتمهای حریصانه تا برنامهنویسی پویا، همه اینها ابزارهایی هستن که میتونی با حل بیش از 450 مسئله بهشون تسلط پیدا کنی! 🌟
https://www.codechef.com/roadmap/data-structures-and-algorithms
لطفاً این محتوا را با دوستانتان به اشتراک بگذارید تا همه با هم از یادگیری لذت ببریم! 🚀🎯
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
آمادهای تا هوش و خلاقیت خودت رو به چالش بکشی؟ 🚀 با یادگیری مفاهیمی مثل لیستهای پیوندی، پشتهها، صفها، گرافها، درختها و بسیاری از الگوریتمهای جذاب دیگه، میتونی قدم به دنیای برنامهنویسی حرفهای بذاری! 🔥
از الگوریتمهای حریصانه تا برنامهنویسی پویا، همه اینها ابزارهایی هستن که میتونی با حل بیش از 450 مسئله بهشون تسلط پیدا کنی! 🌟
https://www.codechef.com/roadmap/data-structures-and-algorithms
لطفاً این محتوا را با دوستانتان به اشتراک بگذارید تا همه با هم از یادگیری لذت ببریم! 🚀🎯
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
مقدمه سریع و کاربردی گوگل به یادگیری ماشین 🚀، شامل مجموعهای از درسهای آموزنده است که همراه با ویدیوهای آموزشی 🎥، شبیهسازیهای تعاملی 🌀 و تمرینهای عملی 💻 ارائه میشود تا شما را به سرعت در مبانی یادگیری ماشین ماهر کند. این دوره با رویکردی عملی، به شما کمک میکند تا با مفاهیم کلیدی یادگیری ماشین آشنا شوید و آنها را در دنیای واقعی به کار بگیرید 🌍.
https://developers.google.com/machine-learning/crash-course
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
https://developers.google.com/machine-learning/crash-course
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
وقتی LaTeX با شبکه عصبی ترکیب میشود
PlotNeuralNet
✅ اگر میخواهید شبکههای عصبی خود را با دقت و کیفیت مقالات علمی ترسیم کنید، PlotNeuralNet یک گزینه عالی است.
✅ این ابزار با استفاده از LaTeX به شما امکان میدهد تا مدلها و لایههای شبکه عصبی را با جزئیات و به صورت کاملاً قابل تنظیم نمایش دهید.
✅ نتیجه؟ یک تصویر واضح و دقیق که همه اجزای شبکه را به زیبایی و دقت نمایش میدهد.
میخای ازش استفاده کنی؟ رو لینک زیر کلیک کن 👇
https://github.com/HarisIqbal88/PlotNeuralNet
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
PlotNeuralNet
✅ اگر میخواهید شبکههای عصبی خود را با دقت و کیفیت مقالات علمی ترسیم کنید، PlotNeuralNet یک گزینه عالی است.
✅ این ابزار با استفاده از LaTeX به شما امکان میدهد تا مدلها و لایههای شبکه عصبی را با جزئیات و به صورت کاملاً قابل تنظیم نمایش دهید.
✅ نتیجه؟ یک تصویر واضح و دقیق که همه اجزای شبکه را به زیبایی و دقت نمایش میدهد.
میخای ازش استفاده کنی؟ رو لینک زیر کلیک کن 👇
https://github.com/HarisIqbal88/PlotNeuralNet
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
This media is not supported in your browser
VIEW IN TELEGRAM
Insertion-Sort
الگوریتم مرتبسازی درج (Insertion Sort) یکی از الگوریتمهای ساده مرتبسازی است که شباهت زیادی به مرتب کردن کارتهای بازی 🃏 در دست دارد. فرض کنید اولین کارت بهطور پیشفرض مرتب است و سپس کارتهای نامرتب دیگر را به ترتیب انتخاب میکنیم. اگر کارت انتخابشده بزرگتر از کارتهای مرتبشده قبلی باشد، در سمت راست آن قرار میگیرد و در غیر این صورت در سمت چپ 🡐🡒. این روند ادامه دارد تا همه کارتها به درستی مرتب شوند.
در الگوریتم مرتبسازی درج نیز همین ایده به کار گرفته میشود. ابتدا یک عنصر انتخاب میشود و سپس در میان عناصر مرتبشده جستجو میشود تا جایگاه مناسب آن پیدا شود. با وجود سادگی، این روش برای مجموعه دادههای بزرگ کارایی خوبی ندارد، زیرا پیچیدگی زمانی آن در حالت متوسط و بدترین حالت برابر با O(n²) است ⏳. الگوریتمهای مرتبسازی دیگر مثل Heap Sort**، **Quick Sort و Merge Sort عملکرد بهتری دارند 🚀.
با این حال، مرتبسازی درج چند مزیت دارد:
- پیادهسازی ساده ✅
- کارایی مناسب برای مجموعه دادههای کوچک 🧮
- سازگاری با دادههای تا حد زیادی مرتب 🔄
الگوریتم:
مراحل ساده الگوریتم مرتبسازی درج به شکل زیر است:
1️⃣. اگر عنصر اولین عنصر است، فرض میشود که مرتب است. به مرحله بعد بروید.
2️⃣. عنصر بعدی را انتخاب کرده و در یک متغیر کلیدی ذخیره کنید 🔑.
3️⃣. کلید را با همه عناصر موجود در آرایه مرتبشده مقایسه کنید.
4️⃣. اگر عنصر موجود در آرایه مرتبشده از کلید کوچکتر است، به عنصر بعدی بروید 🡒. در غیر این صورت، عناصر بزرگتر را به سمت راست منتقل کنید 🡐.
5️⃣. کلید را در جایگاه مناسب خود درج کنید ✔️.
6️⃣. این روند را تا مرتب شدن کل آرایه ادامه دهید.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
در الگوریتم مرتبسازی درج نیز همین ایده به کار گرفته میشود. ابتدا یک عنصر انتخاب میشود و سپس در میان عناصر مرتبشده جستجو میشود تا جایگاه مناسب آن پیدا شود. با وجود سادگی، این روش برای مجموعه دادههای بزرگ کارایی خوبی ندارد، زیرا پیچیدگی زمانی آن در حالت متوسط و بدترین حالت برابر با O(n²) است ⏳. الگوریتمهای مرتبسازی دیگر مثل Heap Sort**، **Quick Sort و Merge Sort عملکرد بهتری دارند 🚀.
با این حال، مرتبسازی درج چند مزیت دارد:
- پیادهسازی ساده ✅
- کارایی مناسب برای مجموعه دادههای کوچک 🧮
- سازگاری با دادههای تا حد زیادی مرتب 🔄
الگوریتم:
مراحل ساده الگوریتم مرتبسازی درج به شکل زیر است:
1️⃣. اگر عنصر اولین عنصر است، فرض میشود که مرتب است. به مرحله بعد بروید.
2️⃣. عنصر بعدی را انتخاب کرده و در یک متغیر کلیدی ذخیره کنید 🔑.
3️⃣. کلید را با همه عناصر موجود در آرایه مرتبشده مقایسه کنید.
4️⃣. اگر عنصر موجود در آرایه مرتبشده از کلید کوچکتر است، به عنصر بعدی بروید 🡒. در غیر این صورت، عناصر بزرگتر را به سمت راست منتقل کنید 🡐.
5️⃣. کلید را در جایگاه مناسب خود درج کنید ✔️.
6️⃣. این روند را تا مرتب شدن کل آرایه ادامه دهید.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer