آرایه ها array
DESCRIPTION
آرایه ها Array. تعریف آرایه. لیستی از n عنصر ، متناهی (محدود) ، با عناصر هم نوع ، دسترسی از طریق اندیس که در حافظه در خانه های متوالی حافظه قرار می گیرند. آرایه به عنوان یک نوع داده انتزاعی داده ها: مشخصات آرایه عملگرها : پیمایش ، جستجو، مرتب کردن، اضافه و حذف، ادغام - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/1.jpg)
1
Arrayآرایه ها
![Page 2: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/2.jpg)
2
تعریف آرایه عنص�ر ، متن�اهی )مح�دود( ، ب�ا عناص�ر nلیس�تی از •
هم ن�وع ، دسترس�ی از طری�ق ان�دیس ک�ه در حافظ�ه در خ�انه های �متو�الی ح�افظه قرار� می� گیرند.
آرایه به عنوان یک نوع داده انتزاعی•داده ها: مشخصات آرایه▫عملگره�ا: پیم�ایش، جس�تجو، م�رتب ک�ردن، اض�افه و ح�ذف، ▫
ادغام
آرایه یک بعدی )خطی(•9 تا 0 عنصر از 10 ▫C++ int a[10]تعریف در ▫;X=a[3]بازیابی مقدار ▫;a[3]=Xذخيره مقدار ▫++ اندیس از صفر شروع می شود.Cدر ▫
![Page 3: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/3.jpg)
3
اندازه آرایه
ان�دازه آرای�ه : تع�داد خان�ه ه�ا * ان�دازه ه�ر •خانه
▫int : 2بایت ▫float : 4بایت ▫char : 1بایت ▫boolean : 1بایت
آدرس خان�ه ش�روع آرای�ه را base(a)تابع •برمی گرداند.
![Page 4: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/4.jpg)
4
آدرس خانه ای خاص در آرایه یک بعدی
address a[i] = base (a) + i * sizeof (type(a))
تعریف • با آرایه یک در floatمثال: a[200] در آرای��ه ش��روع آدرس اگ��ر ، در ک�دام آدرس a25 باش�د، 1000حافظ�ه
قرار دارد؟(25 – 0) × 4 + 1000 = 1100
![Page 5: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/5.jpg)
5
آرایه دو بعدی )ماتریس(
![Page 6: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/6.jpg)
6
روش ذخیره ماتریس ها
![Page 7: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/7.jpg)
7
حالت کلی
[L1 … U1 , L2 … U2 , Ln … Un]Array [L … U] of itemsU – L + 1 = تعداد عناصر آرایه n= [U1 – L1 تعداد عناصر آرایهn بعدی+ 1][U2 – L2 + 1][Un – Ln + 1]
(space)فض�ای اش�غال ش�ده توس�ط آرای�ه =
[U1 – L1 + 1][U2 – L2 + 1][Un – Ln + 1] * sizeof(type(array))
![Page 8: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/8.jpg)
8
آدرس دهی سطری
address (a[i,j]) = base (a)+ تع�داد عناص�رقبل* سایز
= base (a) + [(n*i)+j] * sizeof (type(a))
= base (a) + [(u2-l2+1)*(i-l1) + (j-l2)] * sizeof (type(a)) i
j
m= u1-l1+1
n = u2-l2+1
![Page 9: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/9.jpg)
9
آدرس دهی ستونی
address (a[i,j]) = base (a)+ تع�داد عناص�رقبل* سایز
= base (a) + [(m*j)+i] * sizeof (type(a))
= base (a) + [(u1-l1+1)*(j-l2) + (i-l1)] * sizeof (type(a)) i
j
m= u1-l1+1
n = u2-l2+1
![Page 10: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/10.jpg)
10
![Page 11: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/11.jpg)
11
A [60 , 6] = (60 – 1) × (26 – 1 + 1) +
(6 – 1 × )2 + 1000 = 4078A [20 , 4] = (4 – 1) × (100 – 1 +
1) + (20 – 1) × 2 + 1000 = 1638
![Page 12: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/12.jpg)
آرايه سه بعدی
![Page 13: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/13.jpg)
13
رابطه بین اندیس ها در ماتریس مربعی
دارای • اص�لی قط�ر روی عناص�ر م�ربعی م�اتریس در آد�رس یکسانی در روشه�ای سطری و �ستونی هستند.
ب�االی قط�ر اصلی است.A[i,j] باش�د آنگ�اه i<jاگ�ر • روی قط�ر اصلی است.A[i,j] باش�د آنگ�اه i=jاگ�ر • پ�ایین قط�ر اصلی است.A[i,j] باش�د آنگ�اه i>jاگ�ر •آنگ�اه i+j<n-1اگ�ر • باش�د A[i,j] ب�االی قط�ر ف�رعی
است.آنگ�اه i+j=n-1اگ�ر • باش�د A[i,j] ف�رعی قط�ر روی
است.آنگ�اه i+j>n-1اگ�ر • باش�د A[i,j] پ�ایین قط�ر ف�رعی
است.
![Page 14: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/14.jpg)
ذخيره سازي ماتريسهاي خاص
![Page 15: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/15.jpg)
15
ماتریس های خاص
![Page 16: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/16.jpg)
ماتریس های قطری
اس�ت ک�ه تم�امی درای�ه ه�ای آن غ�یر از قط�ر اص�لی ماتریس م�ربعی•
صفر باشد.
)تع�داد • اص�لی قط�ر ط�ول ب�ه آرای�ه ی�ک در را ه�ا م�اتریس این
سطرها یا ستون ها(، ذخیره می نماییم.
تعداد عناصر غیر صفر =n
.نحوه ذخیره بصورت یک آرایه یک بعدی
( پس عضوi, i در اندیس )i قرار دارد. از آرايه یک بعدي
نکته: اندیس آرایه ها در(C)از صفر شروع می شود
16
1 0 0 0
0 3 0 0
0 0 6 0
0 0 0 10
![Page 17: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/17.jpg)
ماتریس های سه قطری
اس�ت ک�ه تم�امی درای�ه ه�ای آن غ�یر از قط�ر اص�لی، ماتریس م�ربعی•
باالی قطر اصلی و پایین قطر اصلی صفر باشد.
= تعداد عناصر غیر صفرn+2)n-1(
17
1 3 0 0
4 3 9 0
0 1 6 4
0 0 1 2
![Page 18: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/18.jpg)
ماتریس های مثلثی
پ�ایین • تم�ام درای�ه ه�ای ب�اال مثل�ثی: م�اتريس م�ربعي ك�ه ماتریس
قطر اصلی در آن صفر هستند.
ماتریس پ�ایین مثل�ثی: م�اتريس م�ربعي ك�ه تم�ام درای�ه ه�ای ب�االی •
قطر اصلی در آن صفر هستند.
n)n+1(/2= تعداد عناصر غیر صفر •
18
1 0 0 0
2 3 0 0
4 5 6 0
7 8 9 10
![Page 19: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/19.jpg)
ذخيره سازي ماتريسهاي خاص - ادامه
اين ماتريسها را مي توان نوع خاصي از ماتريس اسپارس •دانست.
ذخيره سازي عناصر غير صفر در يك آرايه يك بعدي جهت •صرفه جويي در حافظه.
![Page 20: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/20.jpg)
ماتریس پراکنده یا اسپارس:ماتریس هایی که اکثریت عناصر آنها مقدار صفر •
دارند .با توجه به تعداد زیاد صفرها و بزرگ بودن •
ماتریسها ایجاد روش بهینه برای ذخیره سازی
راه حل: استفاده از یک آرایه دو بعدی با سه ستون
![Page 21: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/21.jpg)
21
row col value
A[1] 0 0 15 A[2] 0 3 22 A[3] 0 5 -15 A[4] 1 1 11 A[5] 1 2 3 A[6] 2 3 -6 A[7] 4 0 91 A[8] 5 2 28
اوليه ماتريس سطرهاي تعداد
ماتريس ستونهاي تعداداوليه
صفر عناصرغير تعداداوليه ماتريس
A[0] 6 6 8
![Page 22: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/22.jpg)
ترانهاده ماتريس اسپارس
براي ترانهاده كردن اين ماتريس شماره ي سطر و ستون را عوض كرده مقدار عنصر را
قرار مي دهيم:valueدر ستون
( 0,0,15( )0,0,15)( 0,3,22( )3,0,22)( 0,5-,15( )5,0-,15)
![Page 23: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/23.jpg)
ترانهاده ماتريس اسپارس - مثال
![Page 24: آرایه ها Array](https://reader035.vdocuments.us/reader035/viewer/2022062222/56815aa4550346895dc83197/html5/thumbnails/24.jpg)
ويژگيهاي كالس اسپارس
class MatrixTerm {friend class SparseMatrixprivate :
int row, col, value;}In SparseMatrix:private:
int Rows, Cols, Terms;MatrixTerm smArray [MaxTerms];