Download presentation
Presentation is loading. Please wait.
Published byYanti Kusumo Modified over 6 years ago
1
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
پردازش زیر آرایه ها تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
2
مروری بر مطالب از آرایه برای نگهداری مجموعه ای از داده های به هم وابسته استفاده می کنیم برای استفاده از آرایه لازم است قبل از شروع برنامه، حداکثر اندازه آرایه را مشخص نماییم و در طول برنامه اندازه آرایه را بدست آوریم. ماشین حساب 30 رقمی با تغییر اندیس آرایه می توانیم به صورت ترتیبی به آن دسترسی پیدا کنیم
3
پردازش زیر آرایه ها در بعضی از الگوریتم ها لازم است محاسبات را بر روی قسمتی از آرایه از اندیس شروع تا اندیس پایان انجام دهیم.
4
مثال : پیدا کردن اندیس کوچکترین عضو زیر آرایه
Const MaxSize = 100; Var startIndex, endIndex,minIndex: Integer; nums : array [1..MaxSize] of Integer; Begin …. readln(startIndex,endIndex); minIndex:= startIndex; for i:=startIndex+1 to endIndex do if nums[minIndex]>nums[i] then minIndex:=i; writeln(minIndex); End.
5
جستجوی یک آرایه آرایه ای را برای رسیدن به عددی خاص مورد جستجو قرار می دهیم. از عنصر اول آرایه جستجو را شروع کرده، آن را با عنصر مورد نظر مقایسه می کنیم و این عمل را تا پیدا شدن داده مورد نظر ادامه می دهیم.
6
مثال : جستجوی نام دانشجو با استفاده از شماره دانشجویی
Var ID : array[1..Max] of Integer; names : array[1..Max] of string; Begin … readln(sid); for i:=1 to max do if ID[i]=sid then break; if i>max then writeln(‘not found’) else writeln(names[i]); End.
7
مرتب سازی یک آرایه مرتب سازی انتخابی : برای اجرای مرتب سازی انتخابی روی آرایه ای که دارای N عضو است (اندیس 1..N)، کوچکترین عنصر آرایه را پیدا کرده و آن را با اولین عنصر آرایه جایگزین می کنیم. کوچکترین عنصر در اندیس 1 قرار دارد کوچکترین عنصر از آرایه باقیمانده را (اندیس 2..N) در اندیس 2 قرار می دهیم. کوچکترین عنصر از آرایه باقیمانده را (اندیس 3..N) در اندیس 3 قرار می دهیم. ...
8
الگوریتم مرتب سازی انتخابی
برای Fill برابر با 1 تا N-1 انجام بده در زیر آرایه nums[Fill..N]، موقعیت کوچکترین عنصر را پیدا کن اگر Fill در موقعیت کوچکترین عنصر قرار نگرفته، آنگاه کوچکترین عنصر را با عنصری که در موقعیت Fill قرار گرفته است، تعویض کن.
9
مثال اجرایی از الگوریتم مرتب سازی انتخابی
Fill Min 4 5 1 3 2 1 5 4 3 2 1 2 4 3 5 1 2 3 4 5
10
پیاده سازی مرتب سازی انتخابی
Var nums : array[1..max] of Integer; … Begin … for Fill:=1 to max do begin min := Fill; for j:=Fill+1 to max do if nums[j]<nums[min] then min:=j; if (Fill<>min) then temp:=nums[Fill]; nums[Fill]:=nums[min]; nums[min]:=temp; end; End.
11
تحلیل الگوریتم : نماد Oی بزرگ
الگوریتم های مختلفی برای حل مساله وجود دارد معیار انتخاب بهترین راه حل کم ترین زمان اجرا را داشته باشد بهترین راه حل کم ترین میزان حافظه را مصرف کرده باشد. ... زمان اجرای الگوریتم ها (برنامه ها) را روی N داده تخمین می زنیم و با یکدیگر مقایسه می کنیم. رابطه میان زمان پردازش و N را با O نشان می دهیم.
12
تحلیل الگوریتم : نماد Oی بزرگ (ادامه)
زمان اجرای هر حلقه = زمان اجرای بدنه حلقه * تعداد تکرار حلقه For i:= 1 to N do nums[i]:=I; for j:= 1 to N do k:= k+i*j; O(N*1) O(N*N)
13
تحلیل الگوریتم : نماد Oی بزرگ (ادامه)
O(3N)=O(N) O(2N*N-3N) =O(N2) O(4)=O(1) جمله ای که بیشترین توان را دارد، از سایر جملات سریع تر رشد می کند، بنابراین از ثوابت و جملات با توان کمتر چشم پوشی می کنیم.
14
تحلیل زمان اجرای الگوریتم مرتب سازی انتخابی
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.