tree sort

24

Upload: dysis

Post on 10-Jan-2016

48 views

Category:

Documents


1 download

DESCRIPTION

Tree Sort. درخت جستجوی دودویی (Binary Search Tree). درخت جستجوی دودویی یک درخت دودویی است که ممکن است تهی باشد. اگر تهی نباشد دارای خاصیت زیر است: مقدار هر گره بزرگتر از هر مقدار در زیر درخت چپ و کوچکتر از هر مقدار در زیر درخت راست آن می باشد. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Tree Sort
Page 2: Tree Sort

دودویی جستجوی Binary)درختSearch Tree)

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

: . است زیر خاصیت دارای نباشد تهی اگر باشد تهی است

درخت زیر در مقدار هر از بزرگتر گره هر مقدار

آن راست درخت زیر در مقدار هر از کوچکتر و چپ

. باشد می

دارای نباید گره دو و است کلید یک دارای گره هر

.) ( فردهستند به منحصر کلیدها باشند یکسان کلید

Page 3: Tree Sort

: الف شکل زیر شکلهای فرزند BSTدر که چرا نیست

گره که( 10یعنی ) 15راست حالی در است کوچکتر آن از

. باشد بزرگتر باید

درخت یک ب . BSTشکل باشد می20

15 25

12 10

30

5 40

2 ) الف)ب ))

Page 4: Tree Sort

در عنصر یک BSTجستجوی

کلید با عنصری دنبال بخواهیم کنید . xفرض از ابتدا بگردیم

فاقد . جستجو درخت باشد، تهی ریشه اگر کنیم می شروع ریشه

. این غیر در بود خواهد ناموفق جستجو و بوده عنصری هر

. xصورت، اگر کنیم می مقایسه ریشه کلید مقدار با کمتر xرا

. کنیم می جستجو را چپ درخت زیر باشد، ریشه کلید مقدار از

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

. کنیم می جستجو را

: کنیم می بیان را جستجو الگوریتم زیر در

Page 5: Tree Sort

Function search )t: BSTpointer; x:integer(:boolean;

Var found: boolean;

Begin

found:=false;

if )t<>nill( then begin

found=TRUE if data)t( = x then

else if data)t( > x then

found := search )Lchild)t( , x(

else if data)t( < x then

Search )Rchild )t(, x(; found=:

end;

Search := found;

End;

Page 6: Tree Sort

نکته:

با hاگر باشد، دودویی جستجوی درخت یک عمق یا ارتفاع

تابع از در searchاستفاده را جستجو عمل توانیم )O)hمی

. دهیم انجام

میزان به اضافی پشته یک به بازگشتی روش در )O)hالبته

. داشت خواهیم نیاز

Page 7: Tree Sort

به عنصر یک کردن BSTاضافه

جدید عنصر درج ی این xبرا آیا که نمود مشخص ابتدا باید ،

. انجام برای خیر یا باشد می متفاوت موجود عناصر با عنصر

. باشد ناموفق جستجو اگر کرد جستجو را درخت باید کار این

است کرده پیدا خاتمه جستجو که محلی در را عنصر ما پس

. الگوریتم شبیه کردن اضافه الگوریتم بنابراین کنیم می درج

جستجو الگوریتم انتهای به باید کار این برای و است جستجو

: کنیم اضافه را زیر خط if )not found ( then insert )x ,q(;

Page 8: Tree Sort

: insertتابع است زیر صورت بهProcedure insert ) x: integer ; q: BSTpointer(;

Var t: BSTpointer;

Begin

new )t(; data)t( := x;

Lchild )t(:=nil; Rchild )t(:=nil;

if )data )q( > x( then

Lchild )q(:=t

else if )data)q( < x( then

Rchild)q(:=t;

End;

Page 9: Tree Sort

درختی سازی Tree Sortمرتب

دودویی جستجوی درختهای از روش این مرتب BSTدر برای

. درخت اگر شود می استفاده صورت BSTسازی inorderبه

خواهد مرتب صعودی صورت به حاصل دنباله شود، پیمایش

شد.

درخت یک داخل یک به یک آرایه عناصر ابتدا الگوریتم این در

BST . با همزمان سپس کنیم می درج است تهی ابتدا در که

قرار آرایه یک در را شده پیمایش عناصر درخت، این پیمایش

. شوند مرتب تا دهیم می

Page 10: Tree Sort

40,60,50,33,55,1140 60 > 40

60

50 > 40

50 < 60

50

33 < 40

33

55 > 40

55 < 60

55 > 50

55

11 < 40

11 < 33

11 33 40 50 55 60

Page 11: Tree Sort

بدترین حالت

متوسط بهترین حالتحالت

O )n^2(O)n log n(O)n log n(پیچیدگی اجرایی

Page 12: Tree Sort

با شده داده اعداد اگر که است آن مهم نکته

درختهای گاه آن باشند، شده داده مختلفی ترتیب

عمق و کنند می فرق هم با است ممکن حاصل

. باشند داشته مختلفی

Page 13: Tree Sort

از عنصر یک BSTحذف

از عنصر یک . BSTحذف زیرا است آن درج از دشوارتر نسبتا

گره باید است فرزند دارای که شود می حذف ای گره وقتی

. این اگر شود شده حذف گره جایگزین تا شود انتخاب دیگری

خواص نشود انجام درست .BSTانتخاب شود می نقض

در ابتدا شود حذف باید که ای شود BSTگره می جستجو

حفظ درخت خواص که شود می جایگزین نحوی به سپس

شود.

Page 14: Tree Sort

فرزندی. 1حالت و باشد برگ شود حذف باید که ای گره

. می انجام سادگی به حذف حالت این در باشد نداشته

. شود تهی برابر والد گر اشاره است کافی و پذیرد

Page 15: Tree Sort

90

50 95

20

5 25

90

50 95

20

5

Page 16: Tree Sort

چپ. 2حالت فرزند یک دارای تنها شود حذف باید ای گره . شود آن جایگزین تواند می که است

90

50 95

20

5 25

90

9520

5 25

Page 17: Tree Sort

چپی. 3حالت فرزند شود حذف باید که ای گره راست فرزند. شود. می آن جایگزین راست فرزند بنابراین ندارد

90

50 150

20 125

140

90

50 175

20 125

140

Page 18: Tree Sort

چپ. 4حالت فرزند شود حذف باید که ای گره راست فرزند

آن. جایگزین گره راست فرزند ترین چپ حالت این در دارد

. شود می

. گره راست درخت مقدارزیر کوچکترین یعنی

گره بخواهیم اگر مثال ترین 50برای چپ کنیم حذف را

یعنی آن راست .66فرزند کنیم می حذف را

Page 19: Tree Sort

90

50 150

20

5

75

80

90

66 150

20

5

75

80

Page 20: Tree Sort

:inorderپیمایش است زیر صورت به

15,25,33,44,50,60,66,75.

گره از 33بنابراین بعد ظاهر 25که

گره جانشین را شود .25می کنیم می

گره ابتدا ) 33یعنی حالت به بنا کرده حذف را

جای( را آن سپس و .25ب دهیم می قرار

60

25 75

15 50 66

33

Page 21: Tree Sort

گره جای 33جانشینی تنها 25به حافظه در

با نه و شود می انجام گرها اشاره تغییر با

مکان یک از گره یک محتوای جایی به جا

. دیگر مکان به

گره بجای گره 33البته توانیم جانشین 15می را

25. کنیم

درخت نتیجه نمی BSTدر یکتا حذف عمل از حاصل

باشد.

60

33 75

15 50 66

44

Page 22: Tree Sort

زمان در تواند می حذف که )O)hعمل گیرد hانجام

. باشد می درخت عمق

درخت یک متوسط BSTدر ارتفاع ، Log 2nبا

. کرد حذف میتوان را عنصر کوچکترین

Page 23: Tree Sort

منبع:دادها ساختمان

مقسمی حمیدرضاwww.HPKClasses.ir

Page 24: Tree Sort

: کنندگان تهیهامامی مونا

جو نوع سمانه

استاد استاد راهنما:

کسمایی