👍6❤5🤔3
Algorithm design & data structure
Photo
جواب:
همان طور که مشاهده میکنید اگرi=1 باشد حلقه داخلی n/2بار تکرار می شود زیرا به همان صورت که j در حال افزایش است nهم در حال کاهش می باشد تا زمانی که در وسط به هم برسند در iهای بعدی هم به همین صورت میباشد بنابراین با مجموع گرفتن و دانستنی های ریاضی میتوان نتیجه گرفت که پیچیدگی این الگوریتم از مرتبه ی n می باشد.
همان طور که مشاهده میکنید اگرi=1 باشد حلقه داخلی n/2بار تکرار می شود زیرا به همان صورت که j در حال افزایش است nهم در حال کاهش می باشد تا زمانی که در وسط به هم برسند در iهای بعدی هم به همین صورت میباشد بنابراین با مجموع گرفتن و دانستنی های ریاضی میتوان نتیجه گرفت که پیچیدگی این الگوریتم از مرتبه ی n می باشد.
👌5👍4❤1👏1👨💻1
تعریف پشته(Stack):
پشته یک ساختار داده خطی است که از اصل LIFO (Last-In-First-Out) پیروی می کند. پشته یک انتهای دارد، در حالی که صف دارای دو سر (جلو و عقب) است. این شامل تنها یک اشاره گر بالای اشاره گر است که به بالاترین عنصر پشته اشاره می کند. هرگاه عنصری به پشته اضافه شود، در بالای پشته اضافه می شود و عنصر را فقط از پشته می توان حذف کرد. به عبارت دیگر، پشته را می توان به عنوان ظرفی تعریف کرد که در آن جاگذاری و حذف از یک سر که به عنوان بالای پشته شناخته می شود، انجام شود.مثالی دیگه که میتوان برای پشته زد فرض کنیددر یک پارکینگ چند ماشین پشت سر هم قرار دارند زمانی که ماشین اول که وارد شده خارج شود باید اول ماشین هایی که بعد از اون وارد شدن خارج شوند تا بتواند از پارکینگ خارج شود. در واقع میتوان گفت در پشته کسی که زودتر از همه وارد شده دیرتر از همه هم خارج می شود.
📣👨💻 @AlgorithmDesign_DataStructuer
پشته یک ساختار داده خطی است که از اصل LIFO (Last-In-First-Out) پیروی می کند. پشته یک انتهای دارد، در حالی که صف دارای دو سر (جلو و عقب) است. این شامل تنها یک اشاره گر بالای اشاره گر است که به بالاترین عنصر پشته اشاره می کند. هرگاه عنصری به پشته اضافه شود، در بالای پشته اضافه می شود و عنصر را فقط از پشته می توان حذف کرد. به عبارت دیگر، پشته را می توان به عنوان ظرفی تعریف کرد که در آن جاگذاری و حذف از یک سر که به عنوان بالای پشته شناخته می شود، انجام شود.مثالی دیگه که میتوان برای پشته زد فرض کنیددر یک پارکینگ چند ماشین پشت سر هم قرار دارند زمانی که ماشین اول که وارد شده خارج شود باید اول ماشین هایی که بعد از اون وارد شدن خارج شوند تا بتواند از پارکینگ خارج شود. در واقع میتوان گفت در پشته کسی که زودتر از همه وارد شده دیرتر از همه هم خارج می شود.
📣👨💻 @AlgorithmDesign_DataStructuer
👍9❤1👨💻1
در اینجا همان طور که مشاهده می کنید پشت خالی میباشد سپس عدد 5 با استفاده از متد Push(پوش)وارد پشته می شود سپس عدد 6 وارد میشود و بعد با استفاده از متد Pop(پاپ) آخرین عددی که وارد پشته شده است را برداشت که عدد 6 میباشد و بعد هم عدد 5 و در اخر پشته خالی می شود.
📣👨💻 @AlgorithmDesign_DataStructuer
📣👨💻 @AlgorithmDesign_DataStructuer
❤7👍3👌1👨💻1
شاخص های کلیدی پیچیدگی یک الگوریتم
پیچیدگی مکانی :پیچیدگی مکانی یک الگوریتم کل فضای گرفته شده حافضه می باشید,که توسط یک الگوریتم گرفته میشود که در واقع میتوان گفت میزان حافظه ای است که با توجه به ورودی تابع گرفته می شود.
پیچیدگی زمانی : در واقع میتوان گفت بیشترین تعداد محاسبات یک الگوریتم با توجه به اندازه ورودی.
در این جا برای ما پیچیدگی مکانی برای ما زیاد مهم نیست و بیشتر تمرکز ما روی پیچیدگی زمانی میباشید تا بتوانیم یه الگوریتم بهینه بسازیم و سرعت اجرای برنامه را به حداقل ممکن برسانیم زیرا ممکنه است شما یک الگوریتم بسازید زمانی که اندازه ورودی را کم میدهید هیچ تأثیری در زمان نداشته باشد ولی در واقع ملاک ما اندازه ورودی زیاد میباشد که ممکن است الگوریتمی که ساختید بهینه نباشد و ممکن چند سال طول بکشد تا الگوریتم شما اجرا شود.
📣👨💻 @AlgorithmDesign_DataStructuer
پیچیدگی مکانی :پیچیدگی مکانی یک الگوریتم کل فضای گرفته شده حافضه می باشید,که توسط یک الگوریتم گرفته میشود که در واقع میتوان گفت میزان حافظه ای است که با توجه به ورودی تابع گرفته می شود.
پیچیدگی زمانی : در واقع میتوان گفت بیشترین تعداد محاسبات یک الگوریتم با توجه به اندازه ورودی.
در این جا برای ما پیچیدگی مکانی برای ما زیاد مهم نیست و بیشتر تمرکز ما روی پیچیدگی زمانی میباشید تا بتوانیم یه الگوریتم بهینه بسازیم و سرعت اجرای برنامه را به حداقل ممکن برسانیم زیرا ممکنه است شما یک الگوریتم بسازید زمانی که اندازه ورودی را کم میدهید هیچ تأثیری در زمان نداشته باشد ولی در واقع ملاک ما اندازه ورودی زیاد میباشد که ممکن است الگوریتمی که ساختید بهینه نباشد و ممکن چند سال طول بکشد تا الگوریتم شما اجرا شود.
📣👨💻 @AlgorithmDesign_DataStructuer
👌6👍3❤1🖕1👨💻1
برنامه چیست؟ همان الگوریتم است که در چارچوب قوانین یک زبان برنامه نویسی مثل cpp,javaو... نوشته میشود.
تفاوت هایی بین برنامه و الگوریتم وجود دارد از جمله :
۱-برنامه نبایستی حتما پایان پذیر باشد ولی الگوریتم پایان پذیر است.
۲-الگوریتم را میتوان به هر شکلی نوشت(شبه کد-نمودار گردشی و...) ولی برنامه باید در چار چوب یک زبان نوشته شود.
نکته : الگوریتم عبارت است از مراحل حل یک مسئله که در هر مرحله به خوبی تعریف شده باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
تفاوت هایی بین برنامه و الگوریتم وجود دارد از جمله :
۱-برنامه نبایستی حتما پایان پذیر باشد ولی الگوریتم پایان پذیر است.
۲-الگوریتم را میتوان به هر شکلی نوشت(شبه کد-نمودار گردشی و...) ولی برنامه باید در چار چوب یک زبان نوشته شود.
نکته : الگوریتم عبارت است از مراحل حل یک مسئله که در هر مرحله به خوبی تعریف شده باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
👍7❤2💩2⚡1👨💻1
👍3👨💻2
نکته : در پیچیدگی زمانی یک الگوریتم اگر حلقه های forتو در تو باشند یعنی به هم وابسته نباشند در هم ضرب میشوند ولی زمانی که بصورت مجذا از هم باشند با یکدیگر جمع میشوند.
📣👨💻 @AlgorithmDesign_DataStructuer
📣👨💻 @AlgorithmDesign_DataStructuer
👍4👨💻1
همان طور که مشاهده می کنید مجموع زمان اجرای این قطعه کد 2 میباشد و ما زمانی که پیچیدگی یک الگوریتم عدد ثباتی باشد آن را از مرتبه 1 در نظر میگیریم.
📣👨💻 @AlgorithmDesign_DataStructuer
📣👨💻 @AlgorithmDesign_DataStructuer
👍2👨💻1
Algorithm design & data structure
Photo
جواب :
در این سوال چون دو حلقه تو در تور داریم میتوان گفت که جواب n^2میباشد زیرا که مهم نیست که بازه حلقه فور ما از کجا شروع میشود.
📣👨💻 @AlgorithmDesign_DataStructuer
در این سوال چون دو حلقه تو در تور داریم میتوان گفت که جواب n^2میباشد زیرا که مهم نیست که بازه حلقه فور ما از کجا شروع میشود.
📣👨💻 @AlgorithmDesign_DataStructuer
👍4👨💻1
ویژگی توابع بازگشتی :
1 -از معایب توابع بازگشتی این است که در نهایت سادگی حجم زیادی را اشغال کرده و
نسبتا کند عمل می کنند و نیز در زمان پردازش cpu را درگیر می کنند.
2 -خود را فراخوانی می کنند.( تعداد دفعاتی که خود را فراخوانی می کند باید محدودباشد.بدیهی است که در غیر این صورت اجرای آن خاتمه نمی یابد.)
3 -دارای شرط خاتمه می باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
1 -از معایب توابع بازگشتی این است که در نهایت سادگی حجم زیادی را اشغال کرده و
نسبتا کند عمل می کنند و نیز در زمان پردازش cpu را درگیر می کنند.
2 -خود را فراخوانی می کنند.( تعداد دفعاتی که خود را فراخوانی می کند باید محدودباشد.بدیهی است که در غیر این صورت اجرای آن خاتمه نمی یابد.)
3 -دارای شرط خاتمه می باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
👌4👍2👨💻1
مرتبه تابع زیر از کدام یک از توابع می باشد؟
f(n)=6n+4n^2+6!
f(n)=6n+4n^2+6!
Anonymous Poll
5%
6n
10%
n
11%
6!
74%
n^2
👍3👨💻1
آرایه:
آرایـه نوعی ساختمان داده است که عناصر آن هم نوع بوده و هر یک از عناصر با یک اندیس به صورت مسـتقیم قابـل دسـتیابی اسـت. آرایـه مـیتواند یک بعدی , دو بعدی و یا چند بعدی باشد.آرایه های دو بعدی را با نام ماتریس میشناسیم.
[L1 … U1 , L2 … U2 , Ln … Un]
Array [L … U]
size of Array = U-L+1
[ U1 – L1 + 1][U2 – L2 + 1][Un – Ln + 1]
Space required for the array = n × (U-L+1)
📣👨💻 @AlgorithmDesign_DataStructuer
آرایـه نوعی ساختمان داده است که عناصر آن هم نوع بوده و هر یک از عناصر با یک اندیس به صورت مسـتقیم قابـل دسـتیابی اسـت. آرایـه مـیتواند یک بعدی , دو بعدی و یا چند بعدی باشد.آرایه های دو بعدی را با نام ماتریس میشناسیم.
[L1 … U1 , L2 … U2 , Ln … Un]
Array [L … U]
size of Array = U-L+1
[ U1 – L1 + 1][U2 – L2 + 1][Un – Ln + 1]
Space required for the array = n × (U-L+1)
📣👨💻 @AlgorithmDesign_DataStructuer
👍5👨💻1
درخت جست و جوی دودویی(BST):
درخت جستجو دودویی یک درخت دودیی است که در آن هر گره از تمام کلید های زیر درخت چپ بزرگتر و از تمام کلید های زیر درخت راست کوچیک تر است.
📣👨💻 @AlgorithmDesign_DataStructuer
درخت جستجو دودویی یک درخت دودیی است که در آن هر گره از تمام کلید های زیر درخت چپ بزرگتر و از تمام کلید های زیر درخت راست کوچیک تر است.
📣👨💻 @AlgorithmDesign_DataStructuer
👌3👍1👨💻1
Algorithm design & data structure
مرتبه تابع زیر از کدام یک از توابع می باشد؟
f(n)=6n+4n^2+6!
f(n)=6n+4n^2+6!
جواب:
نکته:طبق اصل maxگیری , وقتی بین چند جمله جمع یا تفریق وجود دارد,مرتبه آن برابر با بزرگترین جمله آن است .
بنابراین بزرگترین جمله در این تابع n^2می باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
نکته:طبق اصل maxگیری , وقتی بین چند جمله جمع یا تفریق وجود دارد,مرتبه آن برابر با بزرگترین جمله آن است .
بنابراین بزرگترین جمله در این تابع n^2می باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
👌8👨💻1
نماد O بزرگ:
یک نماد ریاضی است که برای رفتار حدی یک تابع به کار می رود. این نماد که مخفف Order of growthکه به فارسی به معنای مرتبه رشد هست برای رشد الگوریتم ها به کار گرفته میشود که در وقع میتوان گفت که به معنای کران بالای رشد توابع به کار رفته در الگوریتم ها به کار می رود.
تحلیل شکل:
در واقع میگه از یک مقدار خاصی Xoبیشتر ,تابع gبا ضریب cمقدار بیشتری یا مساوی از تابع fمی باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
یک نماد ریاضی است که برای رفتار حدی یک تابع به کار می رود. این نماد که مخفف Order of growthکه به فارسی به معنای مرتبه رشد هست برای رشد الگوریتم ها به کار گرفته میشود که در وقع میتوان گفت که به معنای کران بالای رشد توابع به کار رفته در الگوریتم ها به کار می رود.
تحلیل شکل:
در واقع میگه از یک مقدار خاصی Xoبیشتر ,تابع gبا ضریب cمقدار بیشتری یا مساوی از تابع fمی باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
👍5👨💻1
الگوریتم های بازگشتی داری چه معایبی هستند؟
Anonymous Quiz
63%
اتلاف حافظه،عدم بهینه بودن
10%
قابل فهم بودن،طولانی بودن الگوریتم
12%
هیچ کدام
15%
رفع تکرار و تکرار استفاده از کد
👍4👨💻2