کنکور کامپیوتر
0
ورود | ثبت نام
نظرات
اشتراک
بالا
علاقه‌مندی

اشتراک
 

آموزش آرایه در ساختمان داده به زبان ساده و از 0 تا 100

در این مقاله موارد زیر بررسی شده است : 1- آرایه چیست 2- انواع اندیس گذاری در آرایه 3- انواع آرایه 4- محاسبه آدرس در آرایه 5- محاسبه شماره در آرایه 6- آرایه در برنامه نویسی 7- مزایای استفاده از آرایه

آرایه در ساختمان داده چیست؟

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

به‌عنوان مثال، اگر بخواهیم نمره‌های کسب شده توسط یک دانش آموز را در 5 موضوع ذخیره کنیم، دیگر نیازی به تعریف متغیرهای جداگانه برای هر موضوع نیست بلکه می‌توانیم آرایه‌ای تعریف کنیم که عناصر داده را در مکان‌های پشت سر هم حافظه ذخیره کند.

آرایه‌ی Mark[5] نمرات دانش آموز را در 5 موضوع مختلف نشان می‌دهد که در آن نمرات هر موضوع در یک مکان (اندیس) خاص از آرایه قرار دارند. به عنوان مثال Mark[0]=19 نشان‌دهنده نمره کسب شده در موضوع اول، Mark[1]=20 نمره کسب شده در موضوع دوم و به همین منوال است. برای درک بهتر موضوع می‌توان مثال ذکر شده برای نمرات دانش آموز را با نمایش منطقی و قابل درک زیر نمایش داد.

فیلم آموزش آرایه در ساختمان داده به زبان ساده و از 0 تا 100

قبل از اینکه به ادامه مقاله آرایه در ساختمان داده بپردازیم توصیه می‌کنیم که فیلم زیر که در خصوص تحلیل و بررسی درس ساختمان داده رشته کامپیوتر است را مشاهده کنید، در این فیلم توضیح داده شده که فیلم درس ساختمان داده برای چه افرادی مناسب است و همین طور در خصوص فصول مختلف درس ساختمان داده و اهمیت هر کدام از فصول ساختمان داده صحبت شده است.

در ادامه این مقاله فیلم های رایگان ساختمان داده که به آنها نیاز دارید نیز در اختیارتان قرار گرفته است.

خب حالا مجددا به توضیح آرایه در ساختمان داده ادامه می‌دهیم

انواع اندیس گذاری در آرایه

درزبان‌های برنامه‌نویسی، اندیس‌ها از شماره صفر شروع می‌شوند.

ذخیره سازی آرایه در حافظه و انواع آرایه

همان‌طور که در قسمت‌های قبل گفته شد، نمایش منطقی یک آرایه تک بعدی به صورت یک سطر و چندین ستون است که داده‌ها به صورت پشت سر هم در حافظه که همگی از یک نوع بوده و از آدرس مشخصی شروع شده‌اند، ذخیره می‌شوند. اما ما انواع دیگری از آرایه داریم که می‌توان در غالب جدول یا ماتریس (آرایه 2 بعدی-2D) نشان داد که برای دسترسی به آن باید از 2 اندیس استفاده کرد که اندیس اول مشخص کننده سطر و اندیس دوم مشخص کننده ستون آرایه است که آن را به صورت Array[n,m] یا Array[n][m] نمایش می‌دهیم.

آرایه‌های دوبعدی، همان ماتریس‌ها هستند

یک آرایه دو بعدی که به شکل یک ماتریس با جدول نشان داده شده است.

به همین شکل می‌توان یک آرایه 3 بعدی به صورت Array[n,m,k] و همچنین n بعدی تعریف کرد.

فرمول آرایه سه بعدی در ساختمان داده

برای محاسبه آدرس خانه‌ی \(\mathrm{A}\left[\mathrm{i,\ j,\ k}\right]\) در آرایه \(\mathrm{A}\left[\mathrm{L}_\mathrm{1}..\mathrm{U}_\mathrm{1},\mathrm{L}_\mathrm{2}..\mathrm{U}_\mathrm{2},\mathrm{L}_\mathrm{3}..\mathrm{U}_\mathrm{3}\right]\) با توجه به وضعیت (سطری یا ستونی) همواره می‌توانیم به صورت زیر عمل کنیم:

α = آدرس شروع آرایه (در صورت عدم بیان آدرس شروع \(\alpha=\mathrm{\circ}\) فرض می‌کنیم)

β = فضای نوع عناصر آرایه (در صورت عدم بیان فضای نوع عناصر آرایه 1 = β فرض می‌کنیم)

\(\mathrm{A}\left[\overline{\mathrm{i,\ j,\ k}}\right]=\mathrm{\alpha+}\left[\left(\mathrm{k}-\mathrm{L}_\mathrm{3}\right)\left(\mathrm{U}_\mathrm{2}-\mathrm{L}_\mathrm{2}+\mathrm{1} \right)\left(\mathrm{U}_\mathrm{1}-\mathrm{L}_\mathrm{1}+\mathrm{1} \right)+\left(\mathrm{j}-\mathrm{L}_\mathrm{2}\right)\left(\mathrm{U}_\mathrm{1}-\mathrm{L}_\mathrm{1}+\mathrm{1} \right)+\left(\mathrm{i}-\mathrm{L}_\mathrm{1}\right)\right]\times\mathrm{\beta}\) (آدرس سطری)

\(\mathrm{A}\left[\overline{\mathrm{i,\ j,\ k}}\right]=\mathrm{\alpha+}\left[\left(\mathrm{i}-\mathrm{L}_\mathrm{1}\right)\left(\mathrm{U}_\mathrm{2}-\mathrm{L}_\mathrm{2}+\mathrm{1} \right)\left(\mathrm{U}_\mathrm{3}-\mathrm{L}_\mathrm{3}+\mathrm{1} \right)+\left(\mathrm{j}-\mathrm{L}_\mathrm{2}\right)\left(\mathrm{U}_\mathrm{3}-\mathrm{L}_\mathrm{3}+\mathrm{1} \right)+\left(\mathrm{k}-\mathrm{L}_\mathrm{3}\right)\right]\times\mathrm{\beta}\) (آدرس ستونی)

مثال: آرایه 3 بعدی \(\mathrm{A}\left[\mathrm{1:15,\ }-\mathrm{5:5,\ 10:25}\right]\) برای ذخیره اعداد صحیح به طول 2 بایت به کار گرفته است. اگر آرایه به صورت سطری از آدرس 2000 به بعد ذخیره شده باشد آدرس عنصر \(\mathrm{A}\left[\mathrm{5,\ 2,\ 15}\right]\) چیست؟

1) 3868
2) 3370
3) 3420
4) 3642

حل: گزینه 4 درست است.

\[ \mathrm{A:\ }\left[\mathrm{1..15,}-\mathrm{5..5,\ 10..25}\right]\ \ \ \ \ \mathrm{\beta\ =\ 2\ \ \ \ \ \alpha\ =\ 2000} \]

\[\mathrm{A}\left[\overline{\mathrm{5}\mathrm{,\ }\mathrm{2},\mathrm{15}}\right]=\mathop{\mathrm{\ }\require{enclose}, \enclose{horizontalstrike}{\mathrm{\alpha}}\mathrm{\ }}^{\mathrm{2000}}+\left[\left(\mathrm{5}\mathrm{-}\mathrm{1}\right)\left(\mathrm{5}\mathrm{-}\left(-\mathrm{5}\right)\mathrm{+}\mathrm{1}\right)\left(\mathrm{25}\mathrm{-}\mathrm{10}\mathrm{+}\mathrm{1}\right)+\left(\mathrm{2}\mathrm{-}\left(-\mathrm{5}\right)\right)\left(\mathrm{25}\mathrm{-}\mathrm{10}\mathrm{+}\mathrm{1}\right)+\left(\mathrm{15}\mathrm{-}\mathrm{10}\right)\right]\times \mathop{\mathrm{\ }\require{enclose}\enclose{horizontalstrike}{ß}\mathrm{\ }}^{\mathrm{2}}=\mathrm{2000}\mathrm{+}\mathrm{1642}\mathrm{=}\mathrm{3642}\]

این روش برای حالت n بعدی نیز به راحتی قابل تعمیم است. 

در صورت عدم بیان نوع آدرس (سطری یا ستونی) به‌طور پیش‌فرض آدرس سطری در نظر گرفته می‌شود.

مثال: آرایه دو بعدی \(\mathrm{X}\left[\mathrm{-5..5,\ 3..33}\right]\) در آدرس 400 به بعد حافظه قرار دارد و هر خانه آرایه احتیاج به 4 بایت دارد. آدرس عنصر \(\mathrm{X}\left[\mathrm{4,10}\right]\) به روش ستونی کدام است؟

1) 1444
2) 1544
3) 844
4) 744

حل: گزینه 4 درست است.

\[\mathrm{X}\left[-\mathrm{5..5,\ 3..33}\right]\ \ \ \ \ \mathrm{\alpha\ =\ 400\ \ \ \ \beta\ =\ 4}\]

\[\mathrm{X}\left[\overline{\mathrm{4},\mathrm{10}}\right]=\mathop{\mathrm{\ }\require{enclose}, \enclose{horizontalstrike}{\mathrm{\alpha}}\mathrm{\ }}^{\mathrm{400}}+\left[\left(\mathrm{10}\mathrm{-}\mathrm{3}\right)\left(\mathrm{5}\mathrm{-}\left(-\mathrm{5}\right)+\mathrm{1}\right)+\left(\mathrm{4}\mathrm{-}\left(-\mathrm{5}\right)\right)\right]\times \mathop{\mathrm{\ }\require{enclose} \enclose{horizontalstrike}{ß}\mathrm{\ }}^{\mathrm{4}}=\mathrm{400}\mathrm{+}\mathrm{344}\mathrm{\ =\ }\mathrm{744}\]

گاهی اوقات یک آرایه چند بعدی را به صورت سطری یا ستونی در یک آرایه یک بعدی ذخیره می‌کنند، در این صورت آدرس خانه مشخص در آرایه چند بعدی به شکل سطری یا ستونی در آرایه یک بعدی مورد نظر می‌باشد.

مثال: آرایه 3 بعدی \(\mathrm{A}\left[\mathrm{1\ ..\ m,\ 1\ ..\ n,\ 1\ ..\ p}\right]\) در یک آرایه یک بعدی \(\mathrm{B}\left[\mathrm{1\ ..\ m\ \times\ n\ \times\ p}\right]\) به روش سطر به سطر ذخیره شده است. آدرس عنصر \(\mathrm{A}\left[\mathrm{i,\ j,\ k}\right]\) در B کدام است؟

1) \( \left(\mathrm{i}-\mathrm{1}\right)\mathrm{np+}\left(\mathrm{j}-\mathrm{1}\right)\mathrm{m+}k-1\)
2) \(\left(\mathrm{i}-\mathrm{1}\right)\mathrm{np+}\left(\mathrm{j}-\mathrm{1}\right)\mathrm{p+}k-1\)
3) \(\mathrm{mnp\ +\ np\ \times\ 1}\)
4) inp + jp + k

حل: گزینه 2 درست است.

\[\mathrm{A}\left[\mathrm{1\ ..\ m,\ 1\ ..\ n,\ 1\ ..\ p}\right]\]

\[\mathrm{A}\left[\overline{\mathrm{i,\ j,\ k}}\right]=\mathop{\mathrm{\ }\require{enclose}, \enclose{horizontalstrike}{\mathrm{\alpha}}\mathrm{\ }}^{\mathrm{\circ }}+\left[\left(\mathrm{i}\mathrm{-}\mathrm{1}\right)\left(\mathrm{n}\mathrm{-}\mathrm{1}\mathrm{+\ l}\right)\left(\mathrm{p}\mathrm{-}\mathrm{1}\mathrm{+\ l}\right)+\left(\mathrm{j}\mathrm{-}\mathrm{1}\right)\left(\mathrm{p}\mathrm{-}\mathrm{1}\mathrm{+\ l}\right)+\left(\mathrm{k}\mathrm{-}\mathrm{1}\right)\right]\times \mathop{\mathrm{\ }\require{enclose}, \enclose{horizontalstrike}{ß}\mathrm{\ }}^{\mathrm{1}}=\left(\mathrm{i}\mathrm{-}\mathrm{1}\right)\mathrm{np+}\left(\mathrm{j}\mathrm{-}\mathrm{1}\right)\mathrm{p+}\left(\mathrm{k}\mathrm{-}\mathrm{1}\right)\]

مثال: آرایه سه بعدی \(\mathrm{M}\left[\mathrm{1\ ..\ a,\ 1\ ..\ b,\ 1\ ..\ c}\right]\) در یک آرایه یک بعدی \(\mathrm{N}\left[\mathrm{1\ ..\ a\ \times\ b\ \times\ c}\right]\) به روش ستونی ذخیره شده است. آدرس عنصر \(\mathrm{M}\left[\mathrm{i,\ j,\ k}\right]\) در آرایه N کدام است؟

1) \(\mathrm{a\ \times\ b\ \times\ c\ +\ b\ \times\ c\ \times\ 1}\)
2) \(\mathrm{a\ \times\ b\ \times\ c\ +\ b\ \times\ c\ \times\ 2}\)
3) \(\left(\mathrm{k}-\mathrm{1}\right)\mathrm{ab\ +\ }\left(\mathrm{j}-\mathrm{1}\right)\mathrm{a\ +\ }\left(\mathrm{i}-\mathrm{1}\right)\)
4) \(\left(\mathrm{i}-\mathrm{1}\right)\mathrm{bc\ +\ }\left(\mathrm{j}-\mathrm{1}\right)\mathrm{c\ +\ }\left(\mathrm{k}-\mathrm{1}\right)\)

حل: گزینه 3 درست است.

\[\mathrm{M}\left[\mathrm{1\ ..\ a,\ 1\ ..\ b,\ 1\ ..\ c}\right]\]

\[\mathrm{M}\left[\overline{\mathrm{i,\ j\ k}}\right]=\mathop{\mathrm{\ }\require{enclose}, \enclose{horizontalstrike}{\mathrm{\alpha}}\mathrm{\ }}^{\mathrm{\circ }}+\left[\left(\mathrm{k}\mathrm{-}\mathrm{1}\right)\left(\mathrm{b}\mathrm{-}\mathrm{l\ +}\mathrm{1}\right)\left(\mathrm{a}\mathrm{-}\mathrm{l\ +}\mathrm{1}\right)+\left(\mathrm{j}\mathrm{-}\mathrm{1}\right)\left(\mathrm{a}\mathrm{-}\mathrm{l\ +}\mathrm{1}\right)+\left(\mathrm{i}\mathrm{-}\mathrm{1}\right)\right]\times \mathop{\mathrm{\ }\require{enclose}, \enclose{horizontalstrike}{ß}\mathrm{\ }}^{\mathrm{1}}=\left(\mathrm{k}\mathrm{-}\mathrm{1}\right)\mathrm{ba\ +\ }\left(\mathrm{j}\mathrm{-}\mathrm{1}\right)\mathrm{a\ +\ }\left(\mathrm{i}\mathrm{-}\mathrm{1}\right)\]

فیلم های رایگان ساختمان داده که به آنها نیاز دارید

فیلم ساختمان داده جلسه 1

فیلم ساختمان داده جلسه 1

فیلم ساختمان داده جلسه 1

فیلم ساختمان داده جلسه 2

فیلم ساختمان داده جلسه 2

فیلم ساختمان داده جلسه 3

فیلم ساختمان داده جلسه 3

فیلم ساختمان داده جلسه 4

فیلم ساختمان داده جلسه 4

فیلم ساختمان داده جلسه 5

فیلم ساختمان داده جلسه 5

فیلم ساختمان داده جلسه 6

فیلم ساختمان داده جلسه 6

فیلم ساختمان داده جلسه 7

فیلم ساختمان داده جلسه 7

فیلم ساختمان داده جلسه 8

فیلم ساختمان داده جلسه 8

حل تست ساختمان و الگوریتم جلسه 1

حل تست ساختمان و الگوریتم جلسه 1

حل تست ساختمان و الگوریتم جلسه 2

حل تست ساختمان و الگوریتم جلسه 2

حل تست ساختمان و الگوریتم جلسه 3

حل تست ساختمان و الگوریتم جلسه 3

حل تست ساختمان و الگوریتم جلسه 4

حل تست ساختمان و الگوریتم جلسه 4

انواع پیمایش‌های درخت

انواع پیمایش‌های درخت

نحوه ساخت درخت BST

نحوه ساخت درخت BST

آموزش درخت B-Tree

آموزش درخت B-Tree

بررسی مرتبه ساخت هیپ

بررسی مرتبه ساخت هیپ

آموزش مرتب سازی سریع

آموزش مرتب سازی سریع

آموزش شبکه شار

آموزش شبکه شار

حل سوالات ساختمان ارشد کامپیوتر 99

حل سوالات ساختمان ارشد کامپیوتر 99

حل ساختمان ارشد 95 بخش 1

حل ساختمان ارشد 95 بخش 1

حل ساختمان ارشد 95 بخش 2

حل ساختمان ارشد 95 بخش 2

نمایش بیشتر
نمایش کمتر

محاسبه شماره خانه در آرایه سه بعدی

برای این که محاسبه کنیم \(\mathrm{A}\left[\mathrm{i,\ j,\ k}\right]\) چندمین خانه سطری یا ستونی ماتریس \(\mathrm{A}\left[\mathrm{L}_\mathrm{1}..\mathrm{U}_\mathrm{1},\mathrm{L}_\mathrm{2}..\mathrm{U}_\mathrm{2},\mathrm{L}_\mathrm{3}..\mathrm{U}_\mathrm{3}\right]\) است کافیست در شرایطی که \(\mathrm{\alpha}=\mathrm{\circ}\) و 1 = β در نظر گرفته‌ایم به آدرس \(\mathrm{A}\left[\mathrm{i,\ j,\ k}\right]\) یک واحد اضافه کنیم.

\[\require{enclose} \mathrm{A}\left[\overline{\mathrm{i,\ j,\ k}}\right]=\left(\mathop{\mathrm{\ }\mathrm{\mathrm{\alpha} }\mathrm{\ }}^{ \enclose{horizontalstrike}{0} }+\left[\left(\mathrm{i}\mathrm{-}{\mathrm{L}}_{\mathrm{1}}\right)\left({\mathrm{U}}_{\mathrm{2}}-{\mathrm{L}}_{\mathrm{2}}+\mathrm{1}\right)\left({\mathrm{U}}_{\mathrm{3}}-{\mathrm{L}}_{\mathrm{3}}+\mathrm{1}\right)+\left(\mathrm{j}\mathrm{-}{\mathrm{L}}_{\mathrm{2}}\right)\left({\mathrm{U}}_{\mathrm{3}}-{\mathrm{L}}_{\mathrm{3}}+\mathrm{1}\right)+\left(\mathrm{k}\mathrm{-}{\mathrm{L}}_{\mathrm{3}}\right)\right]\times \mathop{\mathrm{\ }\mathrm{\mathrm{\beta} }\mathrm{\ }}^{\mathrm{1}}\right)+\mathrm{1}\mathrm{\ =\ }\left[\left(\mathrm{i}\mathrm{-}{\mathrm{L}}_{\mathrm{1}}\right)\left({\mathrm{U}}_{\mathrm{2}}-{\mathrm{L}}_{\mathrm{2}}+\mathrm{1}\right)\left({\mathrm{U}}_{\mathrm{3}}-{\mathrm{L}}_{\mathrm{3}}+\mathrm{1}\right)+\left(\mathrm{j}\mathrm{-}{\mathrm{L}}_{\mathrm{2}}\right)\left({\mathrm{U}}_{\mathrm{3}}-{\mathrm{L}}_{\mathrm{3}}+\mathrm{1}\right)+\left(\mathrm{k}\mathrm{-}{\mathrm{L}}_{\mathrm{3}}\right)\right]+\mathrm{1}\]

\[\mathrm{A}\left[\overline{\mathrm{i,\ j,\ k}}\right]=\left(\mathop{\mathrm{\ }\mathrm{\require{enclose}, \enclose{horizontalstrike}{\mathrm{\alpha}} }\mathrm{\ }}^{\mathrm{\circ }}+\left[\left(\mathrm{k}\mathrm{-}{\mathrm{L}}_{\mathrm{3}}\right)\left({\mathrm{U}}_{\mathrm{2}}-{\mathrm{L}}_{\mathrm{2}}+\mathrm{1}\right)\left({\mathrm{U}}_{\mathrm{1}}-{\mathrm{L}}_{\mathrm{1}}+\mathrm{1}\right)+\left(\mathrm{j}\mathrm{-}{\mathrm{L}}_{\mathrm{2}}\right)\left({\mathrm{U}}_{\mathrm{1}}-{\mathrm{L}}_{\mathrm{1}}+\mathrm{1}\right)+\left(\mathrm{i}\mathrm{-}{\mathrm{L}}_{\mathrm{1}}\right)\right]\times \mathop{\mathrm{\ }\mathrm{\require{enclose}, \enclose{horizontalstrike}{\mathrm{\beta\ } }}\mathrm{\ }}^{\mathrm{1}}\right)+\mathrm{1}\mathrm{\ =\ }\left[\left(\mathrm{k}\mathrm{-}{\mathrm{L}}_{\mathrm{3}}\right)\left({\mathrm{U}}_{\mathrm{2}}-{\mathrm{L}}_{\mathrm{2}}+\mathrm{1}\right)\left({\mathrm{U}}_{\mathrm{1}}-{\mathrm{L}}_{\mathrm{1}}+\mathrm{1}\right)+\left(\mathrm{j}\mathrm{-}{\mathrm{L}}_{\mathrm{2}}\right)\left({\mathrm{U}}_{\mathrm{1}}-{\mathrm{L}}_{\mathrm{1}}+\mathrm{1}\right)+\left(\mathrm{i}\mathrm{-}{\mathrm{L}}_{\mathrm{1}}\right)\right]+\mathrm{1}\]

مثال: در آرایه \(\mathrm{A}\left[\mathrm{'a'\ ..\ 'e'\ ,\ 1\ ..\ 4}\right]\)، درایه \(\mathrm{A}\left[\mathrm{'b'\ ,\ 3}\right]\) چندمین خانه آرایه است؟

چون وضعیت سطری یا ستونی مشخص نشده است پیش‌فرض به صورت سطری عمل می‌کنیم در ضمن فاصله 'a' .. 'e' را به شکل 5 .. 1 در نظر می‌گیریم بنابراین وضعیت \(\mathrm{A}\left[\mathrm{2\ ,\ 3}\right] \) در \(\mathrm{A}\left[\mathrm{1\ ..\ 5\ ,\ 1\ ..\ 4}\right]\) مد نظر است.

\[\mathrm{A}\left[\mathrm{2\ ,\ 3}\right]=\left(\mathrm{\circ}+\left[\left(\mathrm{2}-\mathrm{1}\right)\left(\mathrm{4}-\mathrm{1+1}\right)+\left(\mathrm{3}-\mathrm{1}\right)\right]\times\mathrm{1} \right)+\mathrm{1\ =7}\]

4 , 'a' 3 , 'a' 2 , 'a' 1 , 'a'
4 , 'b' 3 , 'b' 2 , 'b' 1 , 'b'
4 , 'c' 3 , 'c' 2 , 'c' 1 , 'c'
4 , 'd' 3 , 'd' 2 , 'd' 1 , 'd'
4 , 'e' 3 , 'e' 2 , 'e' 1 , 'e'

\(\mathrm{A}\left[\mathrm{2\ ,\ 3}\right]\) خانه 7ام به صورت سطری است

خرید فیلم های ساختمان داده

در حال حاضر فیلم آموزش ساختمان داده استاد رضوی پرطرفدارترین و پرفروش‌ترین فیلم آموزشی ساختمان داده و الگوریتم کشور است و هر سال بیش از ۶۰۰۰ نفر این فیلم را تهیه می‌کنند

Ramin Razavi 1

ویدیو درس ساختمان داده

730,000 تومان 620,000 تومان
رامین رضوی
۶۴ ساعت
Ramin Razavi 1

ویدیو نکته و تست ساختمان داده و طراحی الگوریتم

650,000 تومان 552,000 تومان
رامین رضوی
۶۶ ساعت

آرایه در برنامه نویسی

در برنامه نویسی اغلب نیاز به ذخیره حجم زیادی از داده‌ها از نوع مشابه داریم؛ برای ذخیره چنین حجم عظیمی از داده‌ها باید متغیرهای متعددی تعریف کرد. همچنین لازم است در حین نوشتن برنامه، نام همه متغیرها به خاطر سپرده شود که بسیار سخت است. برای حل این موضوع در برنامه نویسی بهتر است یک آرایه تعریف کرده و همه عناصر را در آن ذخیره کنیم.

مزایای استفاده از آرایه

آرایه در C

برای ایجاد آرایه در زبان C ابتدا نوع داده را تعریف کرده (مانند int) سپس نام آرایه و به دنبالش براکت باز و بسته ([]) مشخص می‌کنیم. همچنین برای درج مقادیر در آن از یک لیست که اعداد داخلش به وسیله‌ی کاما (,) از هم جدا شده، استفاده می‌کنیم.

int myNumbers[] = {25, 50, 75, 100} ;

اکنون متغیری ایجاد کردیم که آرایه‌ای از چهار عدد صحیح را در خود جای می‌دهد.

به منظور کسب اطلاعات بیشتر در خصوص کار با آرایه در زبان C می‌توانید به این لینک  مراجعه کنید.

آرایه در C++

برای ایجاد آرایه در زبان C++ ابتدا نوع داده را تعریف می‌کنیم سپس نام آرایه و به دنبالش اندازه آرایه در براکت باز و بسته ([]) را به همراه عناصری که باید در آن ذخیره شوند مشخص می‌کنیم.

string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};

به منظور کسب اطلاعات بیشتر در خصوص کار با آرایه در زبان ++C می‌توانید به این لینک  مراجعه کنید.

آرایه در پایتون

زبان برنامه نویسی Python سرویس از پیش تعریف شده‌ای برای آرایه‌ها ندارد اما به جای آن می‌توان از لیست‌ها (Lists) استفاده کرد. به عنوان مثال لیست زیر شامل نام 3 ماشین است که در متغیر cars ذخیره شده است.

cars = ["Ford", "Volvo", "BMW"]

به منظور کسب اطلاعات بیشتر در خصوص کار با آرایه در زبان Python می‌توانید به این لینک  مراجعه کنید.

آرایه در جاوا

در زبان برنامه نویسی Java برای ساخت یک آرایه نوع متغیر را با براکت تعریف کرده و سپس داده‌ها را به وسیله یک لیست که عناصر داخلش به وسیله‌ی کاما (,) از هم جدا شده، در آن درج می‌کنیم.

String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};

به منظور کسب اطلاعات بیشتر در خصوص کار با آرایه در زبان Java می‌توانید به این لینک  مراجعه کنید.

کدهای عملیات مهم روی ساختمان داده آرایه

یافتن ماکسیمم در آرایه


FindMax (A : integer[n]) : integer
{
  var maxIndex : integer ;
  maxIndex = 1;
  for i = 2 to n do
    if A[i] \gt A[maxIndex] then
        maxIndex = i;
  return maxIndex;
}

یافتن ماکسیمم و مینیمم به صورت همزمان در آرایه


FindMax (A : integer[n]; ref maxIndex, ref minIndex : integer)
{
  maxIndex = 1;
  minIndex = 1;
  for i = 2 to n do
  {
    if A[i] \gt A[maxIndex] then
        maxIndex = i;
    else if A[i] \lt A[minIndex] then
        minIndex = i;
  }
}

جست و جوی دودویی در آرایه


BinarySearch(L:ARRAYl n:integer; K:keyType): integer
{
  // L is a sorted list (increasing) of elements
  // returns index of the matched element, or -1
  // l= lower bound, u= upper bound, m = (u+1)/2
  var l, u : integer;
  l = 1;
  u = n;
  while 1 \le u do
  {
    m = (l + u) / 2;
    if L[m] == k then
      return m;
    else if L[m] \lt k then
      l = m + 1;
    else
      u = m - 1;
  }
  return -1;
}

جمع‌بندی

همانطور که از این مقاله یاد گرفتیم، آرایه‌ها از مباحث مهم در درس ساختمان داده و طراحی الگوریتمآموزش طراحی الگوریتم به زبان سادهآموزش طراحی الگوریتم به زبان سادهدرس طراحی الگوریتم‌ یکی از مهم‌ترین و بنیادیترین دروس‌ رشته کامپیوتر است. هدف از این درس، معرفی روش‌های مختلف طراحی الگوریتم‌ها برای حل مسائل گوناگون است، در این صفحه به معرفی و آموزش طراحی الگوریتم پرداخته شده است.به شمار می‌روند که در برنامه نویسی نیز کاربردهای زیادی دارد. وجود آرایه‌ به ما کمک می‌کند تا برنامه‌های بهینه‌تری طراحی کنیم زیرا الگوریتم‌هایی که روی آرایه‌ها اعمال می‌شوند، سرعت اجرای برنامه را افزایش می‌دهند. امید است که با مطالعه این مقاله پیش زمینه ذهنی مناسبی جهت کار با آرایه پیدا کرده باشید.

آرایه در ساختمان داده چیست و چگونه در حافظه ذخیره می‌شود؟

به مجموعه‌ای از داده‌های پشت سر هم حافظه که همگی از یک نوع بوده و از آدرس مشخصی شروع می‌شوند، آرایه گفته می‌شود. آرایه ساده‌ترین ساختمان دادهای است که در آن می‌توان به هر داده مستقیماً تنها با استفاده از شماره اندیس آن دسترسی داشت.
مثلا اگر بخواهیم نمره‌های کسب شده توسط یک دانش آموز را در 5 موضوع ذخیره کنیم، دیگر نیازی به تعریف متغیرهای جداگانه برای هر موضوع نیست بلکه می‌توانیم آرایه‌ای تعریف کنیم که عناصر داده را در مکان‌های پشت سر هم حافظه ذخیره کند. به منظور آشنایی بیشتر می‌توانید به ابتدای مقاله مراجعه کنید.

چرا آرایه در برنامه نویسی اهمیت دارد؟

در برنامه نویسی اغلب نیاز به ذخیره حجم زیادی از داده‌ها از نوع مشابه داریم؛ برای ذخیره چنین حجم عظیمی از داده‌ها باید متغیرهای متعددی تعریف کرد. همچنین لازم است در حین نوشتن برنامه، نام همه متغیرها به خاطر سپرده شود که بسیار سخت است. برای حل این موضوع در برنامه نویسی بهتر است یک آرایه تعریف کرده و همه عناصر را در آن ذخیره کنیم.

26922 نفر تاکنون در دوره‌های آموزشی کنکور کامپیوتر شرکت کرده‌اند.

همچنین هر گونه سوالی در مورد کلاس‌های آنلاین کنکور کامپیوتر و یا تهیه فیلم‌ها و یا رزرو مشاوره تک جلسه‌ای تلفنی با استاد رضوی دارید می‌توانید به طرق زیر از تیم پشتیبانی بپرسید:

آی دی تلگرام تیم پشتیبانی:     konkurcomputer_admin@

شماره ثابت موسسه:   09378555200

امتیازدهی5 1 1 1 1 1 1 1 1 1 15.00 امتیاز (3 رای)
اشتراک
بارگذاری نظرات
تلگرام اینستاگرام