من اولین دوربین دیجیتال خود را برای آمادگی برای سفر جاده ای چند کشور خریداری کردم و یک تابستان در آنجا رفتم دانشکده. حدود 4 سال قبل از وجود گوشی های هوشمند وجود داشت ، بنابراین داشتن یک دوربین اختصاصی تنها راه برای عکاسی بود. بلافاصله عاشقش شدم. من…
میانبرهای صفحه کلید به بخشی از زندگی من تبدیل شده اند و کار من را آسان و سریع کرده است. این تحقیق می گوید که میانبرهای کلید واژه می توانند سالانه 8 روز کاری را ذخیره کنند.
تصور کنید ، 8 روز دیگر به کارتان فرصت خواهید داشت. مقاله می گوید تقریباً 3.3 of از کل…
استدر این مقاله ، من درباره پیچیدگی محاسباتی که توسط Juris Hartmanis و Richard E. Stearns برای تجزیه و تحلیل دشواری یک الگوریتم توسعه داده شده است ، بحث خواهم کرد. .
همه ما می دانیم که طبیعت بشر به دنبال راهی کارآمد برای جمع آوری وظایف روزانه خود است. فرآیند غالب تفکر در پشت نوآوری و فناوری این است که با ارائه راه هایی برای حل مشکلاتی که ممکن است با آنها روبرو شوند ، زندگی را برای مردم آسان تر کند. در دنیای علم کامپیوتر و محصولات دیجیتال نیز همین اتفاق می افتد. ما الگوریتم هایی می نویسیم که کارآمد بوده و حافظه کمتری را برای عملکرد بهتر اشغال می کنند.
پیچیدگی زمانی زمانی است که الگوریتم برای اجرای هر مجموعه دستورالعمل صرف می کند. همیشه بهتر است کارآمدترین الگوریتم را زمانی انتخاب کنید که یک مشکل ساده با روش های مختلف حل شود. از دو فضای متفاوت تشکیل شده است. فضای کمکی و فضای ورودی.
فاکتور زمان معمولاً مهمتر از فضا است.
اگرچه بی اهمیت به نظر می رسند ، اما این عوامل در تعیین چگونگی توسعه ، طراحی و طراحی یک برنامه رایانه ای و چگونگی ارزش افزوده آن به کاربر بسیار مهم است. به یاد داشته باشید ، زمان پول است.
یک الگوریتم خوب الگوریتمی است که زمان کمتری را در اجرا به همراه داشته باشد و در طول فرآیند صرفه جویی کند. در حالت ایده آل ، ما باید یک حد وسط بین فضا و زمان پیدا کنیم ، اما می توانیم به میانگین بسنده کنیم. بیایید به یک الگوریتم ساده برای یافتن مجموع دو عدد نگاه کنیم.
مرحله #01: شروع.
مرحله #02: ایجاد دو متغیر (a & b).
مرحله #03: ذخیره مقادیر صحیح در "a" و "b." -> ورودی
مرحله #04: ایجاد متغیری با نام "Sum."
مرحله 05: مجموع 'a' و 'b' را در متغیری به نام 'Sum' ذخیره کنید -> خروجی
مرحله 06: پایان.
ساده است به نظر می رسد.
در زیر موارد زیر آمده است:عواملی که در استفاده طولانی مدت از یک الگوریتم نقش مهمی ایفا می کنند:
پیچیدگی زمانی عمیقاً با اندازه ورودی ارتباط دارد. با افزایش اندازه ورودی ، زمان اجرا (که مدت زمان لازم برای اجرای الگوریتم است) نیز افزایش می یابد.
مثال: یک الگوریتم مرتب سازی را در نظر بگیرید.
فرض کنید ما دارای مجموعه ای از اعداد به نام A = {10، 5، 21، 6، 9}،
الگوریتم های زیادی برای مرتب سازی اعداد داده شده موجود است. اما همه آنها کارآمد نیستند. برای یافتن م effectiveثرترین روش ، باید یک تجزیه و تحلیل محاسباتی روی هر الگوریتم انجام دهیم.
لئوناردو گالر و ماتئو کیمورا یکی از بهترین تحقیقات راجع به LAMFO در مورد "مرتب سازی الگوریتم" انجام دادند.
< img src = "https://cdn-images-1.medium.com/max/426/1*Rnj5rPbL7ccE-n1cXgVKrQ.png"> معیارهای LAMFOدر اینجا برخی از مشاهدات مهم نمودار آمده است :-
اگر از سابقه علوم کامپیوتر نیستید ، ممکن است این را پیدا کنید مفهوم کمی پیچیده تر از حد معمول است. جای نگرانی نیست! من شما را تحت پوشش قرار دادم.
بنابراین ، علامت بدون علامت چیست؟ > ما نمی توانیم دو الگوریتم را مستقیماً در کنار یکدیگر مقایسه کنیم. این بستگی زیادی به ابزارها و سخت افزاری دارد که برای مقایسه استفاده می کنیم ، مانند سیستم عامل ، مدل CPU ، تولید پردازنده و غیره. تحت تأثیر تغییرات نامحسوس در محیط سیستم قرار می گیریم.
بنابراین ، ما از تجزیه و تحلیل مجانبی برای مقایسه پیچیدگی فضا و زمان استفاده می کنیم. این دو الگوریتم را بر اساس تغییرات در عملکرد آنها در مورد افزایش یا کاهش اندازه ورودی تجزیه و تحلیل می کند.
در ابتدا سه نوع علامت بدون علامت وجود دارد:
نماد big-O در سال 1894 توسط پل باخمن معرفی شد. او بدون بحث این بحث را در بحث خود در مورد آن معرفی کردتقریبی یک تابع. n) <= c*g (n) برای همه n> = n0}
در اینجا 'n' مقدار حد بالا را می دهد. اگر یک تابع O (n) است ، آن O (n²) ، O (n³) نیز هست.
این رایج ترین نماد برای تجزیه و تحلیل مجانبی است. این محدوده بالایی یک تابع را تعریف می کند ، یعنی حداکثر زمان صرف شده توسط یک الگوریتم یا بدترین پیچیدگی زمانی یک الگوریتم. به عبارت دیگر ، حداکثر مقدار خروجی (big-O) را برای یک ورودی مربوطه می دهد.
توسط مدیسن استنکویچ (Dev.to)از تعریف: تابع f (n) Ω (g (n) است ) در صورت وجود اعداد مثبت c و N ، به عنوان مثال f (n) ≥ cg (n) برای همه n ≥ N.
محدوده پایینی یک تابع را تعریف می کند - یعنی حداقل زمان یک الگوریتم حداقل مقدار خروجی (big-Ω) را برای ورودی مربوطه می دهد.
نمودار توسط Hacker Earthدر صورت وجود اعداد مثبت c1 ، c2 ، f (n) Θ (g (n)) است و N به گونه ای که c1g (n) ≤ f (n) ≤ c2g (n) برای همه n ≥ N
محدوده پایینی و بالایی یک تابع را تعریف می کند ، یعنی در هر دو وجود دارد ، بیشترین و حداقل مرزهای یک مقدار ورودی داده شده.
نمودار توسط Hacker Earth < /img>وقتی برنامه نویسی را شروع کردم ، مفهوم پیچیدگی فضا و زمان همیشه برای من قدم بود. بنابراین امروز ، من فکر کردم بحث ساده ای را در مورد چگونگی تأثیر این دو عامل بر الگوریتم ایجاد کنم.
از شما برای خواندن این داستان و دیدار مجدد متشکرم. در صورت داشتن هر گونه نظر ، بازخورد یا پیشنهادی در مورد آن ، نظر خود را بنویسید!
دوست داشتن آهنگ می گوید: "همه می خواهند روی یک مهر پست باشند ، اما هیچ کس نمی خواهد بمیرد."
انگشت اشاره من دردناک است که پیکان را به سمت "خاموش" می کشاند.
من روی "خاموش کردن" کلیک می کنم.
من به صندلی تکیه می دهم تا یک نفس عمیق بکشم ، اما پس از آن صدای بلند می شود ، "آیا می خواهید تغییرات ایجاد شده در" لیست شیطان یا زیبا #3.xlsb "را ذخیره کنید؟
من به جلو خم می شوم تا روی" ذخیره "کلیک کنم ، در مورد اینکه آیا تصمیم درستی گرفته ام.
خاموش شدن کامپیوتر از سر گرفته می شود. صفحه سیاه می شود. لپ تاپ را می بندم و در کیف می گذارم.
احساس پیروزی می کنم!
من به خانه رانندگی می کنم و ساعت 10 شب از در عبور می کنم. کیفم را روی صندلی ام می اندازم و ناخودآگاه همانطور که همیشه ... انگشت اشاره زخمی ام برای روشن شدن آن دراز می کند ...
< p> من از آن خارج می شوم و جلوی خود را می گیرم! "اوف ، این نزدیک بود."وقتی امروز صبح بیدار شدم ، احساس خوبی داشتم- استراحت کرد.
درسته ، این داستان چندان جالب نیست ، اما من فکر می کنم که درس اینجا عمیق است.
آیا می توانید حدس بزنید چه چیزی است؟ آیا؟
دلیل خاموش کردن کامپیوتر قبل از آمدن به خانه این بود که در اعتدال خوب نیستم ، به ویژه در عصر. من عادت کردم که به خانه بیایم و در شبکه های اجتماعی شرکت کنم و در یوتیوب گشت و گذار کنم. من درگیر این چیزها می شوم من فکر نمی کنم این چیزها ذاتاً بد باشند ، پس از همه من یک کانال YouTube دارم که در سراسر رسانه های اجتماعی تبلیغ می کنم: LIKE ، SUBSCRIBE و SHARE!
فقط یکی از محدودیت های خود را به عنوان انسان ؛ تلاش زیادی می کند تا بتوانم خودم را از صفحه نمایش دور کنم. آنچه در نهایت اتفاق می افتد این است که من به خودم می گویم که باید برای خوابیدن در ساعت 12 صبح آماده شوم ، اما بعد در مقاله ای غرق می شوم و ساعت 12 صبح به سرعت ساعت 12:15 صبح می شود و سپس ساعت 12:45 صبح ساعت 1 صبح.
من در نهایت خیلی رد می شوم از روال عصرانه من به نفع خواب ، و سپس روز بعد با این وضوح شروع نمی کنم.
متوجه می شوم که فردا امشب شروع می شود.
بسیاری را امتحان کردم راه هایی برای کنترل خودم مانند نصب Chrome Browser Extension StayFocusd ، که زمان استفاده از وب سایت های خاص را محدود می کند. من همچنین برنامه ریزی کردم که مک من به طور خودکار ساعت 12 صبح خاموش شود.
این تاکتیک ها در ابتدا کار می کردند ، اما در نهایت مرورگر ناشناس را بیشتر و بیشتر برای خودم توجیه می کردم که برای "اهداف تحقیقاتی" توجیه می شود. .
سپس پنجره خاموش کردن برنامه را لغو می کنم اعلان فقط برای اینکه بتوانم ابتدا کاری را که انجام می دادم به پایان برسانم ، تا اینکه البته آن چیز به چیز دیگری و سپس به مورد دیگری منتهی شود ...
من همچنین یک تلفن هوشمند دارم ، اما به ندرت از آن استفاده می کنم و باعث ناراحتی مادربزرگم می شود که می پرسد: "چرا بیشتر به مادربزرگ زنگ نمی زنی؟" من همچنین به خودم اجازه نمی دهم بازی ها را بارگیری کنم ، زیرا می دانم که به آنها معتاد شده و در نهایت با مشت آهنین تمام Farmville را اداره می کنم!
بنابراین در مقایسه با بسیاری از همسالانم ، من واقعاً مانند یک راهب زندگی کنید ، اما من زندگی را به این دلیل انتخاب می کنم زیرا با ویژگی های اعتیادآور خود آگاه هستم و در تشخیص آنها می توانم خودم را کنترل کنم.
بنابراین ، در مورد استفاده از رایانه من عصر متوجه شدم که باید به خودم یک NO سخت بدهم.
به طور خاص گفتم ، "بعد از اینکه عصر به خانه آمدم تا زمانی که به 1K مشترک YouTube نرسیدم ، از رایانه خود استفاده نخواهم کرد." سپس آن را امضا و تاریخ گذاری کردم تا احساس رسمی تری داشته باشم.
من تا زمانی که به 1K مشترکین نرسیدم ، به خودم هدفی دادم زیرا این یک امتیاز اضافی است که به من انگیزه می دهد تا بیشتر در جهت رسیدن به هدفم تلاش کنم ، اما مهمتر از همه ، پایبند ماندن عهد را باورپذیرتر می کند زیرا اگر به سادگی گفته بودم ، "من عصرها از آن استفاده نخواهم کرد" ، پس از آنکه بتوانم راه خود را برای خروج از آن منطقی کنم ، موضوع زمان بود.
من نذرم را جلوی میز کارم نگه می دارم ، بنابراین هر زمان که تمایل به شکستن آن را داشتم ، آن را می بینم.
فرو ریختن سوزن دیجیتال ... حداقل برای عصر… وقتم را برای برداشتن یک کتاب و قلم آزاد کرده ام ، که در نهایت ، پایان خوبی برای روزم رقم می زند.
از خواندن شما متشکرم! امیدوارم از این داستان پلیسی هیجان انگیز لذت برده باشید! درباره مبارزه و استراتژی اینترنتی خود نظر بدهید.