You are on page 1of 4

‫‪Data Structures‬‬

‫‪Notes for Lecture 19‬‬


‫‪Internal Sort Algorithms‬‬
‫‪By‬‬
‫‪Samaher Hussein Ali‬‬
‫‪2007-2008‬‬

‫‪Insertion Sort Algorithm‬‬


‫ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺿﺎﻓﺔ‬
‫ﻓﻜﺮﺗﻬﺎ‪-:‬‬
‫‪ I=2‬ﻓﻲ اﻟﻘﺎﺋﻤﺔ اﻻﺻﻠﻴﺔ وﻧﻘﺎرﻧﻪ ﻣﻊ اﻟﻌﻨﺼﺮ اﻻول ‪ I=1‬وﻧﻀﻌﻬﻢ ﺣﺴﺐ اﻟﺘﺮﺗﻴﺐ )وﻟﻴﻜﻦ ﺗﺼﺎﻋﺪﻳًﺎ(‬ ‫‪ .1‬ﻧﺒﺪأ ﻣﻦ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻧﻲ‬
‫ﻓﻲ ﻓﻲ ﻣﻘﺪﻣﺔ اﻟﻘﺎﺋﻤﺔ‪.‬‬
‫‪ I=3‬ﻣﻦ اﻟﻘﺎﺋﻤﺔ اﻻﺻﻠﻴﺔ وﻧﻘﺎرﻧﻪ ﻣﻊ ﻣﻘﺪﻣﺔ اﻟﻘﺎﺋﻤﺔ اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﻌﻨﺼﺮ اﻻول واﻟﺜﺎﻧﻲ وﻧﻀﻌﻪ‬ ‫‪ .2‬ﻧﺎﺧﺬ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻟﺚ‬
‫ﻓﻲ ﻣﻮﻗﻌﻪ اﻟﺼﺤﻴﺢ ﻣﻌﻬﻢ‪.‬‬
‫‪ .3‬ﻧﺴﺘﻤﺮ ﻓﻲ هﺬﻩ اﻟﻌﻤﻠﻴﺔ ﻟﻐﺎﻳﺔ اﻟﻌﻨﺼﺮ اﻻﺧﻴﺮ وﺑﺬﻟﻚ ﺳﻨﺤﺼﻞ ﻋﻠﻰ ﻗﺎﺋﻤﺔ ﻣﺮﺗﺒﺔ ‪.‬‬

‫ﻣﺜﺎل ‪ -:‬رﺗﺐ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﺘﺎﻟﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺿﺎﻓﺔ‬


‫‪43‬‬ ‫‪54‬‬ ‫‪11‬‬ ‫‪41‬‬ ‫‪93‬‬ ‫‪17‬‬ ‫‪5‬‬ ‫‪66‬‬
‫ﺧﻄﻮات اﻟﺤﻞ‪-:‬‬
‫ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ = ‪8=N‬‬
‫‪((N)^2)/4‬‬ ‫ﻣﻌﺪل ﻋﺪد اﻟﻤﻘﺎرﻧﺎت =‬
‫‪((N)^4)/4‬‬ ‫ﻣﻌﺪل ﻋﺪد اﻟﺘﺒﺪﻳﻼت =‬
‫‪N-1‬‬ ‫ﻋﺪد ﻣﺮاﺣﻞ اﻟﺤﻞ=‬

‫‪I= 8‬‬ ‫‪I= 7‬‬ ‫‪I= 6‬‬ ‫‪I= 5‬‬ ‫‪I= 4‬‬ ‫‪I= 3‬‬ ‫‪I=2‬‬ ‫اﻟﻘﺎﺋﻤﺔ‬

‫‪5‬‬ ‫‪5‬‬ ‫‪11‬‬ ‫‪11‬‬ ‫‪11‬‬ ‫‪11‬‬ ‫‪43‬‬ ‫‪43‬‬


‫‪11‬‬ ‫‪11‬‬ ‫‪17‬‬ ‫‪41‬‬ ‫‪41‬‬ ‫‪43‬‬ ‫‪54‬‬ ‫‪54‬‬
‫‪17‬‬ ‫‪17‬‬ ‫‪41‬‬ ‫‪43‬‬ ‫‪43‬‬ ‫‪54‬‬ ‫‪11‬‬ ‫‪11‬‬
‫‪41‬‬ ‫‪41‬‬ ‫‪43‬‬ ‫‪54‬‬ ‫‪54‬‬ ‫‪41‬‬ ‫‪41‬‬ ‫‪41‬‬
‫‪43‬‬ ‫‪43‬‬ ‫‪54‬‬ ‫‪93‬‬ ‫‪93‬‬ ‫‪93‬‬ ‫‪93‬‬ ‫‪93‬‬
‫‪54‬‬ ‫‪54‬‬ ‫‪93‬‬ ‫‪17‬‬ ‫‪17‬‬ ‫‪17‬‬ ‫‪17‬‬ ‫‪17‬‬
‫‪66‬‬ ‫‪93‬‬ ‫‪5‬‬ ‫‪5‬‬ ‫‪5‬‬ ‫‪5‬‬ ‫‪5‬‬ ‫‪5‬‬
‫‪93‬‬ ‫‪66‬‬ ‫‪66‬‬ ‫‪66‬‬ ‫‪66‬‬ ‫‪66‬‬ ‫‪66‬‬ ‫‪66‬‬

‫‪1‬‬
‫)‪Public sub Insertion(byref data(1 to n )as integer, dim n as integer‬‬
‫‪Dim item as integer‬‬
‫‪Dim I as integer‬‬
‫‪Dim j as integer‬‬
‫‪i=2‬‬
‫‪if i<= n then‬‬
‫‪j=1‬‬
‫‪if (j>1) and(data(j)<data(j-i) then‬‬
‫)‪item =data(j‬‬
‫)‪data(j)=data(j-1‬‬
‫‪data(j-1)=item‬‬
‫‪j=j+1‬‬
‫‪end if‬‬
‫‪i=i+1‬‬
‫‪end if‬‬
‫‪end sub‬‬

‫‪Address Compute Sort Algorithm‬‬


‫ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ ﺑﺤﺴﺎب اﻟﻌﻨﻮان‬
‫ﻓﻜﺮﺗﻬﺎ‪-:‬‬
‫‪ M‬ﻓﺎن‬ ‫ﻧﻀﻊ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﻤﺮاد ﺗﺮﺗﻴﺒﻬﺎ ﺿﻤﻦ ﻓﺌﺎت ﺑﻤﻮﺟﺐ داﻟﺔ اﻟﺘﻘﻄﻴﻊ ‪ Mid Function‬ﻓﻠﻮ ﻓﺮﺿﻨﺎ ان ﻋﺪد اﻟﻔﺌﺎت ﻳﺴﺎوي‬
‫اﺣﺘﻤﺎﻟﻴﺔ ﺗﻮزﻳﻊ أي ﻋﻨﺼﺮ هﻲ ‪ 1/M‬وﺗﻤﺜﻴﻞ ﻋﻨﺎﺻﺮ أي ﻓﺌﺔ ﺑﺎﺳﺘﺨﺪام ﻗﺎﺋﻤﺔ ﻣﺘﺼﻠﺔ‪.‬‬

‫ﻣﺜﺎل ‪ -:‬رﺗﺐ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﺘﺎﻟﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺘﺮﺗﻴﺐ ﺑﺤﺴﺎب اﻟﻌﻨﻮان‬


‫‪43‬‬ ‫‪17‬‬ ‫‪5‬‬ ‫‪41‬‬ ‫‪93‬‬ ‫‪54‬‬ ‫‪11‬‬ ‫‪66‬‬

‫ﺧﻄﻮات اﻟﺤﻞ‪-:‬‬
‫ﺗﺤﺘﻮي اﻻﻋﺪاد ﻣﻦ ‪9-0‬‬ ‫)‪M(0‬‬
‫ﺗﺤﺘﻮي اﻻﻋﺪاد ﻣﻦ ‪19 -10‬‬ ‫)‪M(1‬‬
‫ﺗﺤﺘﻮي اﻻﻋﺪاد ﻣﻦ ‪29 -20‬‬ ‫)‪M(2‬‬
‫‪.‬‬
‫‪.‬‬
‫ﺗﺤﺘﻮي اﻻﻋﺪاد ﻣﻦ ‪99 -90‬‬ ‫)‪M(9‬‬
‫‪2‬‬
‫)‪M(0‬‬ ‫‪5‬‬

‫)‪M( 1‬‬ ‫‪11‬‬ ‫‪17‬‬

‫)‪M( 2‬‬

‫)‪M(3‬‬

‫)‪M( 4‬‬ ‫‪41‬‬ ‫‪43‬‬

‫)‪M(5‬‬ ‫‪54‬‬

‫)‪M(6‬‬ ‫‪66‬‬

‫)‪M( 7‬‬

‫)‪M(8‬‬

‫)‪M(9‬‬ ‫‪93‬‬

‫)‪M(2),M(3),M(7),M(8‬‬ ‫* اﻻن ﻧﻬﻤﻞ اﻟﻌﻘﺪ اﻟﻔﺎرﻏﺔ‬


‫* ﻧﺮﺑﻂ اﻟﻌﻘﺪ اﻟﺒﺎﻗﻴﺔ ﻓﻲ ﻗﺎﺋﻤﺔ واﺣﺪة‬
‫ﻧﻼﺣﻆ ان هﺬﻩ اﻟﻄﺮﻳﻘﺔ هﻲ ﺧﺎﻟﻴﺔ ﻣﻦ اﻟﺘﺤﺮﻳﻜﺎت واﻟﻨﻘﻼت وهﻲ آﻔﻮءة ﻣﻬﻤﺎ آﺎن ﻋﺪد اﻟﻌﻨﺎﺻﺮ وآﻴﻔﻤﺎ آﺎن ﺗﺮﺗﻴﺒﻬﺎ‪.‬‬

‫‪Selection Sort Algorithm‬‬


‫ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺧﺘﻴﺎر‬
‫ﻓﻜﺮﺗﻬﺎ‪-:‬‬
‫هﻲ اﻳﺠﺎد اﺻﻐﺮ ﻋﻨﺼﺮ ﻓﻲ اﻟﻘﺎﺋﻤﺔ اﻟﻤ ﺮاد ﺗﺮﺗﻴﺒﻬ ﺎ واﺳ ﺘﺒﺪاﻟﻬﺎ ﻣ ﻊ اﻟﻌﻨ ﺼﺮ ﻓ ﻲ اﻟﻤﻮﻗ ﻊ اﻻول ﺛ ﻢ اﻳﺠ ﺎد اﺻ ﻐﺮ ﻋﻨ ﺼﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ اﻟﻤﺘﺒﻘﻴ ﺔ‬
‫واﺳﺘﺒﺪاﻟﻪ ﺑﺎﻟﻌﻨﺼﺮ ﻓﻲ اﻟﻤﻮﻗﻊ اﻟﺜﺎﻧﻲ وهﻜﺬا ﺗﺴﺘﻤﺮ اﻟﻌﻤﻠﻴﺔ ﻟﺤﻴﻦ اﻟﻮﺻﻮل اﻟﻰ ﻧﻬﺎﻳﺔ اﻟﻘﺎﺋﻤﺔ ‪.‬‬

‫ﻣﺜﺎل ‪ -:‬رﺗﺐ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﺘﺎﻟﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺧﺘﻴﺎر‬

‫‪43‬‬ ‫‪54‬‬ ‫‪11‬‬ ‫‪41‬‬ ‫‪93‬‬ ‫‪17‬‬ ‫‪5‬‬ ‫‪66‬‬

‫‪3‬‬
-:‫ﺧﻄﻮات اﻟﺤﻞ‬
8=N = ‫ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ‬
(N/2)*( N-1) = ‫ﻣﻌﺪل ﻋﺪد اﻟﻤﻘﺎرﻧﺎت‬
(N-1) = ‫ﻣﻌﺪل ﻋﺪد اﻟﺘﺒﺪﻳﻼت‬
N-1 =‫ﻋﺪد ﻣﺮاﺣﻞ اﻟﺤﻞ‬
7 ‫اﻟﻤﺮﺣﻠﺔ‬ 6 ‫اﻟﻤﺮﺣﻠﺔ‬ 5 ‫اﻟﻤﺮﺣﻠﺔ‬ 4 ‫اﻟﻤﺮﺣﻠﺔ‬ 3 ‫اﻟﻤﺮﺣﻠﺔ‬ 2 ‫اﻟﻤﺮﺣﻠﺔ‬ 1 ‫اﻟﻤﺮﺣﻠﺔ‬ ‫اﻟﻘﺎﺋﻤﺔ‬

5 5 5 5 5 5 5 66
11 11 11 11 11 11 66 5
17 17 17 17 17 66 17 17
41 41 41 41 66 17 93 93
43 43 43 66 93 93 41 41
54 54 66 93 41 41 11 11
66 66 93 54 54 54 54 54
93 93 54 43 43 43 43 43

Public sub Selectionsort(byref data(1 to n) as integer, byref n as integer)


Dim I as integer:Dim j as integer:Dim k as integer:Dim x as integer:Dim y as integer
For i= 1 to n-1
K=1
Item=data(i)
For j=i+1 to n
If data(j)<item then
X=data(j)
Data(j)=item
Item=x
End if
Next
Y=item
Item=data(k)
Data(k)=y
Next i
End sub

You might also like