تعریف تابع شامل بدنه تابع است که در آن، منطق اجرای تابع تعیین میشود. در این مرحله، تابع به طور کامل معرفی میشود.
مرتبسازی حبابی (Bubble Sort) یکی از سادهترین الگوریتمهای مرتبسازی است که برای مرتب کردن دادهها استفاده میشود. این الگوریتم از روش مقایسه و جابجایی برای ترتیب دادن عناصر آرایه یا لیست استفاده میکند. در این الگوریتم، عناصر بهطور متوالی با یکدیگر مقایسه شده و در صورت نیاز جابجا میشوند. این عملیات تا زمانی که آرایه بهطور کامل مرتب شود، ادامه مییابد. به دلیل سادگی پیادهسازی، مرتبسازی حبابی بهطور گسترده در آموزش الگوریتمها مورد استفاده قرار میگیرد.
الگوریتم مرتبسازی حبابی به این صورت عمل میکند:
در اینجا یک مثال ساده از نحوه پیادهسازی الگوریتم مرتبسازی حبابی در زبان Python آورده شده است. در این مثال، دو عنصر مجاور با یکدیگر مقایسه میشوند و در صورت لزوم جابجا میشوند:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1): # کاهش دامنه مقایسه
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j] # جابجایی دو عنصر
return arr arr = [64, 34, 25, 12, 22, 11, 90] sorted_arr = bubble_sort(arr) print(sorted_arr) # خروجی: [11, 12, 22, 25, 34, 64, 90] در این مثال، در هر دور از حلقه داخلی، دو عنصر مقایسه شده و در صورت لزوم جابجا میشوند. پس از هر دور از مقایسهها، بزرگترین عنصر به انتهای آرایه منتقل میشود.
O(n^2) است، که این بدان معناست که این الگوریتم برای دادههای بزرگ کارایی پایینی دارد.الگوریتم مرتبسازی حبابی در مواردی که دادهها کوچک هستند یا زمان اجرای بالا اهمیتی ندارد، میتواند مفید باشد. برخی از کاربردهای این الگوریتم عبارتند از:
در نهایت، اگرچه الگوریتم مرتبسازی حبابی در عمل کارایی پایینی دارد، اما به دلیل سادگی آن همچنان در بسیاری از موارد آموزشی و سیستمهای با دادههای کوچک مورد استفاده قرار میگیرد. برای آشنایی بیشتر با مفاهیم الگوریتمهای مرتبسازی و دیگر الگوریتمها، میتوانید به سایت saeidsafaei.ir مراجعه کنید و از اسلایدهای محمد سعید صفایی بهرهمند شوید.
در این مبحث، به شناخت، انواع و طرز استفاده از آرایهها پرداخته میشود و چندین مثال عملی با استفاده از فلوچارت و آرایهها رسم خواهیم کرد. همچنین، با توجه به اهمیت فلوچارت در طراحی الگوریتمها، در بخش دوم اسلایدها، چندین تمرین مهم با رسم فلوچارت در اختیار شما قرار خواهد گرفت تا مهارتهای عملی شما در این زمینه تقویت شود.
تعریف تابع شامل بدنه تابع است که در آن، منطق اجرای تابع تعیین میشود. در این مرحله، تابع به طور کامل معرفی میشود.
جستجوی دودویی یک الگوریتم جستجو است که دادههای مرتبشده را به نصف تقسیم میکند و در هر مرحله تنها نیمی از دادهها را بررسی میکند.
نوع دادهای است که برای ذخیرهسازی اعداد صحیح بدون بخش اعشاری استفاده میشود.
یادگیری تقویتی عمیق به استفاده از الگوریتمهای یادگیری برای بهبود تصمیمگیری سیستمها در محیطهای پیچیده گفته میشود.
پیامهایی که به سوئیچها اجازه میدهند اطلاعات توپولوژی شبکه را با یکدیگر به اشتراک بگذارند.
یال یک اتصال بین دو گره در گراف است که ارتباط یا وابستگی بین آنها را نشان میدهد.
ارز دیجیتال به انواع ارزهای مبتنی بر فناوری بلاکچین گفته میشود که بهطور دیجیتال ذخیره و منتقل میشوند.
پهنای باند به میزان دادههایی اطلاق میشود که در یک واحد زمانی بین سیستمها یا اجزای مختلف سیستم منتقل میشود.
شبکهای که در آن دادهها به صورت حلقوی و با استفاده از یک علامت (Token) منتقل میشود.
نوعی VLAN که به دستگاهها اجازه میدهد در یک VLAN مشترک باشند اما نتوانند به یکدیگر دسترسی داشته باشند.
به هر جهش یا انتقال دادهها از یک دستگاه به دستگاه دیگر در شبکه گفته میشود.
دیباگر ابزارهایی است که برای شناسایی و رفع اشکالات در برنامهنویسی استفاده میشود. این ابزار به برنامهنویس اجازه میدهد تا خطاهای موجود در کد را پیدا و اصلاح کند.
واحد محاسباتی و منطقی است که مسئول انجام محاسبات ریاضی و منطقی در پردازنده میباشد.
حلقه for برای اجرای دستورالعملها به تعداد مشخص استفاده میشود. این حلقه معمولاً برای تکرار عملیاتهایی که تعداد مشخصی دارند، مفید است.
آرایه چندبعدی به آرایهای اطلاق میشود که هر عنصر آن یک آرایه چندبعدی است. این آرایهها برای ذخیره دادههایی با ابعاد مختلف مناسب هستند.
امنیت لبه به استفاده از روشها و ابزارهای امنیتی برای حفاظت از دادهها و دستگاههای متصل در لبه شبکه اطلاق میشود.
عملگرهای مقایسهای برای مقایسه دو مقدار و تعیین روابط آنها مانند بزرگتر از، کوچکتر از، مساوی استفاده میشود.
رسانههایی که سیگنالها را از طریق مسیر مشخص هدایت میکنند، مانند کابلهای مسی، فیبر نوری و کابلهای کواکسیل.
هوش افزوده به تقویت توانمندیهای انسانی از طریق تکنولوژیهای هوش مصنوعی گفته میشود تا تصمیمگیریهای بهتری صورت گیرد.
کد منبع کدهایی است که به زبان برنامهنویسی توسط توسعهدهندگان نوشته میشود. این کدها پس از تبدیل توسط کامپایلر به کد ماشین، قابل اجرا بر روی پردازندهها خواهند بود.
بخشهایی از کد هستند که یک وظیفه خاص را انجام میدهند و میتوانند در نقاط مختلف برنامه فراخوانی شوند.
عملیاتهای ریاضی روی اشارهگرها به معنای تغییر موقعیت حافظه است که میتواند برای دسترسی به دادهها و پردازش آنها استفاده شود.
لجستیک هوشمند به استفاده از فناوریهای نوین مانند IoT، هوش مصنوعی و رباتها برای بهینهسازی عملیات حمل و نقل و ذخیرهسازی اشاره دارد.
سیستمهای فیزیکی-مجازی به سیستمهایی اطلاق میشود که از ترکیب نرمافزار و سختافزار برای کنترل و تعامل با دنیای فیزیکی استفاده میکنند.
تصمیمگیری مبتنی بر داده به استفاده از دادهها برای پشتیبانی و هدایت فرآیندهای تصمیمگیری تجاری اطلاق میشود.
تابع لامبدا تابعی است که به صورت مستقیم و بدون نیاز به نامگذاری و در داخل کد به صورت لحظهای تعریف میشود. این توابع معمولاً در مواقعی که توابع ساده و کوتاه نیاز است، استفاده میشوند.
مهندسی زیستشناسی مصنوعی به طراحی و مهندسی موجودات یا سیستمهای مصنوعی با ویژگیهای بیولوژیکی گفته میشود.
ساخت هوشمند به استفاده از هوش مصنوعی و رباتها برای طراحی و تولید محصولات در فرآیندهای صنعتی اطلاق میشود.
بیورباتیک به طراحی و ساخت رباتهایی گفته میشود که از ویژگیهای بیولوژیکی برای انجام کارها استفاده میکنند.
عنصر هر آرایه به یکی از اعضای آن اشاره دارد که در یک موقعیت خاص و با اندیس مشخص ذخیره میشود.
نوعی مسیریابی که علاوه بر شمارش تعداد هاپها، مسیر دقیق عبوری دادهها را نیز ثبت میکند.
حریم خصوصی دادهها به روشهایی اطلاق میشود که دادههای حساس را از دسترسی غیرمجاز محافظت میکنند.
مقدار دادهای که میتواند از یک کانال دیجیتال در یک زمان مشخص منتقل شود.
نسل پنجم شبکههای مخابراتی (5G) سرعت اینترنت، اتصال بیشتر و تأخیر کمتری را نسبت به نسلهای قبلی ارائه میدهد.
شاخص یا موقعیتی است که برای اشاره به جایگاه هر رقم در سیستم عددی استفاده میشود.