Algorithm design & data structure
6.68K subscribers
1.02K photos
146 videos
175 files
612 links
این کانال برای تمامی علاقه‌مندان به کامپیوتر، مخصوصاً حوزه ساختمان داده‌ها و الگوریتم‌ها، مفید می باشد. آشنایی با ریاضیات مقدماتی، برنامه‌نویسی مقدماتی و پیشرفته و همچنین شی‌گرایی می‌تواند در درک بهتر مفاهیم این درس کمک‌ کند.

👨‍💻Admin👉 @Se_mohamad
Download Telegram
چه ساختار داده ای برای اولین پیمایش عمق یک نمودار استفاده می شود؟
Anonymous Quiz
22%
Queue
44%
Stack
24%
List
11%
None of the above
👍4👨‍💻3👎2
یکی از کاربردهای پشته در کامپیوتر عبارت های حسابی می باشد که در زیر میتونیم با نمادگذاری infix و postfix آشنا شویم.


نماد گذاری infix (میانوندی):
عبارات Infix توسط انسان قابل خواندن و حل هستند. ما به راحتی می‌توانیم ترتیب عملگرها را تشخیص دهیم و همچنین می‌توانیم از پرانتز برای حل آن قسمت ابتدا در حین حل عبارات ریاضی استفاده کنیم. کامپیوتر نمی تواند عملگرها و پرانتزها را به راحتی متمایز کند، به همین دلیل تبدیل postfix مورد نیاز است.

برای تبدیل عبارت infix به عبارت postfix، از ساختار داده پشته استفاده می کنیم. با اسکن عبارت infix از چپ به راست، زمانی که هر عملوندی را دریافت می کنیم، به سادگی آنها را به فرم پسوند اضافه می کنیم و برای عملگر و پرانتز، آنها را با حفظ اولویت آنها در پشته اضافه می کنیم.

infix:A*B(C+D)
posfix:AB*CD+

📣👨‍💻 @AlgorithmDesign_DataStructuer
👌3👎1👨‍💻1
زمان لازم برای ادغام دو لیست از پیش مرتب شده به اندازه های m , n چه قدر است؟
Anonymous Quiz
24%
O(m*n)
51%
O(m+n)
13%
O(mlogn)
12%
O(nlogm)
👨‍💻6🤔3👎2🙏2
آرایه:
در واقعا ما آرایه ها را بای ذخیر سازی دیتا استفاده میکنیم که به بعدی های مختلفی میتوانیم ان را تقسیم کنیم که برای ذخیره کردن دیتا هم باید از حلقه استفاده کنیم تا بتوانیم به اندیس های آرایه دسترسی داشته باشیم و میتونیم دیتا ها رو در آن ها ذخیر کنیم و از آن ها استفاده کنیم. آرایه از سطر(افقی) و ستون(عمودی)تشکیل می شود.

📣👨‍💻 @AlgorithmDesign_DataStructuer
🙏3👨‍💻2
محاسبه الگوریتم بازگشتی محاسبه ترکیب mاز n:

📣👨‍💻 @AlgorithmDesign_DataStructuer
👍5👨‍💻1
اگر n=10 حاصل الگوریتم بازگشتی چه مقداری را برمیگرداند؟
🤔11
کدوم گزینه درست می باشد؟
Anonymous Quiz
38%
169
24%
231
23%
121
16%
163
🤔11
Queues.@AlgorithmDesign_DataStructuer.pdf
112.1 KB
جزوه بسیار خوب در مورد صف همراه با کد به زبان سی پلاس پلاس

📣👨‍💻 @AlgorithmDesign_DataStructuer
👍4🙏2👨‍💻1
👌5👨‍💻1
Algorithm design & data structure
Photo
کدام گزینه صحیح می باشد؟
Anonymous Quiz
11%
1
30%
2
51%
3
7%
4
💯5🙏2👨‍💻2👍1🤔1
یکی از روش های نمایش گراف ماتریس مجاورت می باشد.

📣👨‍💻 @AlgorithmDesign_DataStructuer
👏3👍1🎉1👨‍💻1
👏2👍1👨‍💻1
کدام گزینه صحیح می باشد؟
Anonymous Quiz
20%
1
20%
2
50%
3
10%
4
🤔5👍2👨‍💻1
انواع متغییر هایی که در زبان برنامه نویسی استفاده میشه شامل سایز و بازه ایی هستند که ما باید در برنامه ها به آن ها توجه کنیم که از چه نوع متغیری استفاده کنیم که هزینه کمتری داشته باشد(حافظه کمتر).

📣👨‍💻 @AlgorithmDesign_DataStructuer
👍3🔥2👨‍💻1
هرم-بیشترین(max-heap):
یک درخت باینری کامل است که در آن مقدار هر گره داخلی بزرگتر یا مساوی با مقادیر فرزندان آن گره است. نگاشت عناصر یک پشته در یک آرایه بی اهمیت است: اگر یک گره با اندیس k ذخیره شود، فرزند سمت چپ آن در شاخص 2k + 1 و فرزند سمت راست آن در شاخص 2k + 2 ذخیره می شود.

📣👨‍💻 @AlgorithmDesign_DataStructuer
👌4🤩2💯1👨‍💻1
تعداد برگ های تولید شده در یک درخت heap که n عنصر دارد چه قدر است؟
Anonymous Quiz
20%
کران پایینn/2
34%
کران بالایn/2
34%
کران پایین log n
12%
کران بالای log n
👍5👨‍💻3
چند تعریف و نکته در مورد گراف

در یک گراف , یک مجوعه از راس ها و یک مجوعه از یال ها داریم که میتوان گفت هر یال 2 راس را به هم متصل می کند.
گراف ساده:
گراف بدون جهت می باشد.
کوتاه ترین مسیر بین دو راس:
این به این معنی می باشد که مجوعه وزن های مورد استفاده بایستی به حداقل مسیر برسانیم.
گراف وزن دار:
هر یال داری وزنی می باشد.
گراف جهت دار:
هر یال علاوه بر وزن جهت نیز دارد که این به معنی می باشد که مشخص می کند که از چه راسی به چه راسی میتوان حرکت کرد.
توجه:
به این نکته دقت کنید که گراف یک درخت نمی باشد زیرا در آن دور(حلقه) وجود ندارد ولی اگر دقت کرده باشید در گراف ها نیز دور وجود دارید.

📣👨‍💻 @AlgorithmDesign_DataStructuer
👍2👏2👨‍💻1
سورس کد مرتب کردن اعداد با استفاده از پشته

📣👨‍💻 @AlgorithmDesign_DataStructuer
👍7👨‍💻1
الگوریتم Greedy (حریصانه)
الگوریتم Greedy، یک الگوریتم ساده و شهودی است که در مسائل بهینه سازی استفاده می شود. این الگوریتم در هر مرحله، انتخاب بهینه را انجام می دهد تا بتواند راه بهینه برای حل کل مسئله را بیابد. در سایت های فارسی، نام این الگوریتم را حریصانه ترجمه کرده اند ولی من ترجیح می دهم با همان Greedy ادامه بدهم. الگوریتم‌های Greedy در برخی مشکلات کاملاً موفق هستند، مانند کدگذاری هافمن (Huffman encoding) که برای فشرده‌سازی داده‌ها استفاده می‌شود، یا الگوریتم Dijkstra که برای یافتن کوتاه‌ترین مسیر از طریق یک گراف استفاده می‌شود. با این حال، در بسیاری از مشکلات، یک استراتژی Greedy راه حل بهینه را پیدا نمی کند.

الگوریتم Greedy دارای 5 جز است:

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

📣👨‍💻 @AlgorithmDesign_DataStructuer
👍5👨‍💻2💯1