Data Structures Notes for Lecture 19 Internal Sort Algorithms By Samaher Hussein Ali 2007-2008
Insertion Sort Algorithm ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺿﺎﻓﺔ ﻓﻜﺮﺗﻬﺎ-: .1ﻧﺒﺪأ ﻣﻦ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻧﻲ
I=2ﻓﻲ اﻟﻘﺎﺋﻤﺔ اﻻﺻﻠﻴﺔ وﻧﻘﺎرﻧﻪ ﻣﻊ اﻟﻌﻨﺼﺮ اﻻول I=1وﻧﻀﻌﻬﻢ ﺣﺴﺐ اﻟﺘﺮﺗﻴﺐ )وﻟﻴﻜﻦ ﺗﺼﺎﻋﺪﻳًﺎ(
ﻓﻲ ﻓﻲ ﻣﻘﺪﻣﺔ اﻟﻘﺎﺋﻤﺔ. I=3ﻣﻦ اﻟﻘﺎﺋﻤﺔ اﻻﺻﻠﻴﺔ وﻧﻘﺎرﻧﻪ ﻣﻊ ﻣﻘﺪﻣﺔ اﻟﻘﺎﺋﻤﺔ اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﻌﻨﺼﺮ اﻻول واﻟﺜﺎﻧﻲ وﻧﻀﻌﻪ
.2ﻧﺎﺧﺬ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻟﺚ ﻓﻲ ﻣﻮﻗﻌﻪ اﻟﺼﺤﻴﺢ ﻣﻌﻬﻢ.
.3ﻧﺴﺘﻤﺮ ﻓﻲ هﺬﻩ اﻟﻌﻤﻠﻴﺔ ﻟﻐﺎﻳﺔ اﻟﻌﻨﺼﺮ اﻻﺧﻴﺮ وﺑﺬﻟﻚ ﺳﻨﺤﺼﻞ ﻋﻠﻰ ﻗﺎﺋﻤﺔ ﻣﺮﺗﺒﺔ . ﻣﺜﺎل -:رﺗﺐ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﺘﺎﻟﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺿﺎﻓﺔ 66
5
93
17
11
41
54
43
ﺧﻄﻮات اﻟﺤﻞ-: ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ = 8=N ((N)^2)/4 ﻣﻌﺪل ﻋﺪد اﻟﻤﻘﺎرﻧﺎت = ﻣﻌﺪل ﻋﺪد اﻟﺘﺒﺪﻳﻼت =
((N)^4)/4 N-1
ﻋﺪد ﻣﺮاﺣﻞ اﻟﺤﻞ=
I= 3
I= 4
I= 5
I= 6
I= 7
I= 8
اﻟﻘﺎﺋﻤﺔ
I=2
43
43
11
11
11
11
5
5
54
54
43
41
41
17
11
11
11
11
54
43
43
41
17
17
41
41
41
54
54
43
41
41
93
93
93
93
93
54
43
43
17
17
17
17
17
93
54
54
5
5
5
5
5
5
93
66
66
66
66
66
66
66
66
93
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)
Address Compute Sort Algorithm ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ ﺑﺤﺴﺎب اﻟﻌﻨﻮان ﻓﻜﺮﺗﻬﺎ-: ﻧﻀﻊ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﻤﺮاد ﺗﺮﺗﻴﺒﻬﺎ ﺿﻤﻦ ﻓﺌﺎت ﺑﻤﻮﺟﺐ داﻟﺔ اﻟﺘﻘﻄﻴﻊ Mid Functionﻓﻠﻮ ﻓﺮﺿﻨﺎ ان ﻋﺪد اﻟﻔﺌﺎت ﻳﺴﺎوي اﺣﺘﻤﺎﻟﻴﺔ ﺗﻮزﻳﻊ أي ﻋﻨﺼﺮ هﻲ 1/Mوﺗﻤﺜﻴﻞ ﻋﻨﺎﺻﺮ أي ﻓﺌﺔ ﺑﺎﺳﺘﺨﺪام ﻗﺎﺋﻤﺔ ﻣﺘﺼﻠﺔ. ﻣﺜﺎل -:رﺗﺐ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﺘﺎﻟﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺘﺮﺗﻴﺐ ﺑﺤﺴﺎب اﻟﻌﻨﻮان 66
11
54
ﺧﻄﻮات اﻟﺤﻞ-: )M(0
ﺗﺤﺘﻮي اﻻﻋﺪاد ﻣﻦ 9-0
)M(1
ﺗﺤﺘﻮي اﻻﻋﺪاد ﻣﻦ 19 -10
)M(2
ﺗﺤﺘﻮي اﻻﻋﺪاد ﻣﻦ 29 -20
. . )M(9
ﺗﺤﺘﻮي اﻻﻋﺪاد ﻣﻦ 99 -90 2
93
41
5
17
43
Mﻓﺎن
5
)M(0
17
11
)M( 1
43
41
)M( 4
54
)M(5
66
)M(6
)M( 2 )M(3
)M( 7 )M(8 )M(9
93 * اﻻن ﻧﻬﻤﻞ اﻟﻌﻘﺪ اﻟﻔﺎرﻏﺔ
)M(2),M(3),M(7),M(8
* ﻧﺮﺑﻂ اﻟﻌﻘﺪ اﻟﺒﺎﻗﻴﺔ ﻓﻲ ﻗﺎﺋﻤﺔ واﺣﺪة ﻧﻼﺣﻆ ان هﺬﻩ اﻟﻄﺮﻳﻘﺔ هﻲ ﺧﺎﻟﻴﺔ ﻣﻦ اﻟﺘﺤﺮﻳﻜﺎت واﻟﻨﻘﻼت وهﻲ آﻔﻮءة ﻣﻬﻤﺎ آﺎن ﻋﺪد اﻟﻌﻨﺎﺻﺮ وآﻴﻔﻤﺎ آﺎن ﺗﺮﺗﻴﺒﻬﺎ.
Selection Sort Algorithm ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺧﺘﻴﺎر ﻓﻜﺮﺗﻬﺎ-: هﻲ اﻳﺠﺎد اﺻﻐﺮ ﻋﻨﺼﺮ ﻓﻲ اﻟﻘﺎﺋﻤﺔ اﻟﻤ ﺮاد ﺗﺮﺗﻴﺒﻬ ﺎ واﺳ ﺘﺒﺪاﻟﻬﺎ ﻣ ﻊ اﻟﻌﻨ ﺼﺮ ﻓ ﻲ اﻟﻤﻮﻗ ﻊ اﻻول ﺛ ﻢ اﻳﺠ ﺎد اﺻ ﻐﺮ ﻋﻨ ﺼﺮ ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ اﻟﻤﺘﺒﻘﻴ ﺔ واﺳﺘﺒﺪاﻟﻪ ﺑﺎﻟﻌﻨﺼﺮ ﻓﻲ اﻟﻤﻮﻗﻊ اﻟﺜﺎﻧﻲ وهﻜﺬا ﺗﺴﺘﻤﺮ اﻟﻌﻤﻠﻴﺔ ﻟﺤﻴﻦ اﻟﻮﺻﻮل اﻟﻰ ﻧﻬﺎﻳﺔ اﻟﻘﺎﺋﻤﺔ . ﻣﺜﺎل -:رﺗﺐ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﺘﺎﻟﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺧﺘﻴﺎر 66
5
17
3
93
41
11
54
43
-:ﺧﻄﻮات اﻟﺤﻞ 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)
4