Professional Documents
Culture Documents
Sorting
اﻟﺘﺮﺗﻴﺐ هﻮ ﻋﻤﻠﻴﺔ ﺗﻨﻈﻴﻢ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻨﺎﺻﺮ اﻟﺒﻴﺎﻧﻴﺔ وﻓﻖ ﻗﻴﻤﺔ ﺣﻘﻞ )او ﻣﺠﻤﻮﻋﺔ ﺣﻘﻮل ( ﻳﺴﻤﻰ ﺑﺎﻟﻤﻔﺘﺎح ﺑﺼﻮرة ﺗﺼﺎﻋﺪﻳﺔ او ﺗﻨﺎزﻟﻴﺔ.
واﻟﻐﺮض ﻣﻦ اﻟﺘﺮﺗﻴﺐ هﻮ-:
.1ﻟﺰﻳﺎدة آﻔﺎءة ﺧﻮارزﻣﻴﺎت اﻟﺒﺤﺚ ﻋﻦ ﻋﻨﺼﺮ ﻣﺎ
.2ﻟﺘﺒﺴﻴﻂ ﻣﻌﺎﻟﺠﺔ اﻟﻤﻠﻔﺎت
.3ﻟﺤﻞ ﻣﺸﻜﻠﺔ ﺗﺸﺎﺑﻪ اﻟﻘﻴﻮد
وﻳﻮﺟﺪ ﻋﺪة ﺗﺼﻨﻴﻔﺎت ﻟﺨﻮارزﻣﻴﺎت اﻟﺘﺮﺗﻴﺐ ﻣﻨﻬﺎ-:
.1ﺧﻮارزﻣﻴﺎت ﺗﻌﺘﻤﺪ اﻟﻤﻘﺎرﻧﺎت
.2ﺧﻮارزﻣﻴﺎت ﺗﻌﺘﻤﺪ اﻟﺘﻮزﻳﻊ
.3ﺧﻮارزﻣﻴﺎت ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﺟﻬﺰة اﻟﺨﺰن وﺗﺘﻀﻤﻦ-:
Internal Sort Algorithm أ .ﺧﻮارزﻣﻴﺎت اﻟﺘﺮﺗﻴﺐ اﻟﺪاﺧﻠﻲ
ﺧﻮارزﻣﻴﺎت اﻟﺘﺮﺗﻴﺐ اﻟﺪاﺧﻠﻲ وﻧﻘ ﺼﺪ ﺑﺎﻟﺘﺮﺗﻴ ﺐ اﻟ ﺪاﺧﻠﻲ ﺑﺎﻟﺘﺮﺗﻴ ﺐ اﻟ ﺬي ﻳﺤ ﺪث ﻓ ﻲ اﻟ ﺬاآﺮة اﻟﺮﺋﻴ ﺴﻴﺔ ﻟﻠﺤﺎﺳ ﺒﺔ ﻋﻨ ﺪﻣﺎ ﻳﻜ ﻮن ﺣﺠ ﻢ اﻟﺒﻴﺎﻧ ﺎت
ﻣﻨﺎﺳﺒًﺎ )ﻟﻴﺲ آﺒﻴﺮًا( وﺗﺘﻀﻤﻦ هﺬﻩ اﻟﺨﻮارزﻣﻴﺎت ﺧﻤﺲ ﻃﺮق -:
1
.1ﻃﺮق اﻟﺘﺮﺗﻴﺐ ﺑﺎﺳﺘﺨﺪام اﻟﺘﺒﺪﻳﻼت
وﺗﺘﻀﻤﻦ ﻋﺪة ﺧﻮارزﻣﻴﺎت
Bubble Sort (Exchange)Algorithm * ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ اﻟﻔﻘﺎﻋﻲ
Quick Sort Algorithm * ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ اﻟﺴﺮﻳﻊ
Shell Algorithm *ﺧﻮارزﻣﻴﺔ ﺷﻴﻞ
*ﺧﻮارزﻣﻴﺔ ﺷﻴﻜﺮ
Shaker Algorithm
* ﺧﻮارزﻣﻴﺔ اﻻزاﺣﺔ
Shifting Algorithm
* ﺧﻮارزﻣﻴﺔ ﺑﺎﺗﺠﺮ
Batcher Algorithm
* ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ اﻟﻔﺮدي واﻟﺰوﺟﻲ
Add-Even Sort Algorithm
.2ﻃﺮق اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺿﺎﻓﺔ
وﺗﺘﻀﻤﻦ ﻋﺪة ﺧﻮارزﻣﻴﺎت
* اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻟﻘﺎﺋﻤﺔ
* اﻟﺘﺮﺗﻴﺐ ﺑﺤﺴﺎب اﻟﻌﻨﻮان
* اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺿﺎﻓﺔ اﻟﺜﻨﺎﺋﻲ
* اﻟﺘﺮﺗﻴﺐ ﺑﺎﻻﺿﺎﻓﺔ اﻟﺨﻄﻲ
.3ﻃﺮق اﻟﺘﺮﺗﻴﺐ ﺑﺎﺳﺘﺨﺪام اﻟﺪﻣﺞ
وﺗﺘﻀﻤﻦ ﻋﺪة ﺧﻮارزﻣﻴﺎت
*ﺧﻮارزﻣﻴﺔ اﻟﺪﻣﺞ اﻟﺒﺴﻴﻂ
*ﺧﻮارزﻣﻴﺔ اﻟﺪﻣﺞ اﻟﻤﺴﺘﻘﻴﻢ
*ﺧﻮارزﻣﻴﺔ اﻟﺪﻣﺞ اﻟﻄﺒﻴﻌﻲ
.4ﻃﺮق اﻟﺘﺮﺗﻴﺐ اﻟﺘﻮزﻳﻌﻲ
وﺗﺘﻀﻤﻦ ﺧﻮارزﻣﻴﺔ واﺣﺪة ﻓﻘﻂ هﻲ-:
* ﺧﻮارزﻣﻴﺔ ﺗﺮﺗﻴﺐ اﻻﺳﺎس
Radix Sort Algorithm
.5ﻃﺮق اﻟﺘﺮﺗﻴﺐ ﺑﻮاﺳﻄﺔ اﻻﺧﺘﻴﺎر
وﺗﺘﻀﻤﻦ ﻋﺪة ﺧﻮارزﻣﻴﺎت-:
* ﺧﻮارزﻣﻴﺔ اﻻﺧﺘﻴﺎر اﻟﺨﻄﻲ
*ﺧﻮارزﻣﻴﺔ اﻻﺧﺘﻴﺎر اﻟﺘﺮﺑﻴﻌﻲ
*ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ اﻟﻜﻮﻣﻲ
*ﺧﻮارزﻣﻴﺔ اﻟﺘﺮﺗﻴﺐ اﻟﺸﺠﺮي
*ﺧﻮارزﻣﻴﺔ اﻻﺧﺘﻴﺎر اﻟﺨﻄﻲ ﺑﺎﻟﺘﺒﺪﻳﻼت
*ﺧﻮارزﻣﻴﺔ اﻻﺧﺘﻴﺎر اﻟﺨﻄﻲ ﺑﺎﻟﻌﺪ
2
External Sort Algorithm
ﺧﻮارزﻣﻴﺎت اﻟﺘﺮﺗﻴﺐ اﻟﺨﺎرﺟﻲ ﻓﻜﺮﺗﻬﺎ اذا آﺎن ﻟﺪﻳﻨﺎ آﻤﻴﺔ آﺒﻴﺮة ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻻﺗﺘﺴﻌﻬﺎ اﻟﺬاآﺮة اﻟﺮﺋﻴﺴﻴﺔ ﻳﺘﻢ ﺧﺰﻧﻬﺎ ﻋﻠﻰ اﺣﺪ وﺳﺎﺋﻞ اﻟﺨﺰن
اﻟﺜﺎﻧﻮﻳﺔ ﺛﻢ ﺗﻘﺴﻢ اﻟﻰ ﻣﻘﺎﻃﻊ وﻳﺘﻢ ﺗﺮﺗﻴﺒﻬﺎ وﻓﻖ اﺣﺪى ﻃﺮق اﻟﺘﺮﺗﻴﺐ اﻟﺪاﺧﻠﻲ ﺛﻢ ﻳﺘﻢ اﻟﺪﻣﺞ ﺑﻴﻦ هﺬﻩ اﻟﻤﻘﺎﻃﻊ .
وﻳﺘﻀﻤﻦ اﻟﺘﺮﺗﻴﺐ اﻟﺨﺎرﺟﻲ اﻟﻄﺮق اﻟﺘﺎﻟﻴﺔ-:
Two-Way-Merge * اﻟﺘﺮﺗﻴﺐ ﺑﺎﻟﺪﻣﺞ ذو اﻟﻤﺴﺎرﻳﻦ
K-Way-Merge * اﻟﺘﺮﺗﻴﺐ ﺑﺎﻟﺪﻣﺞ ﻣﺘﻌﺪد اﻟﻤﺴﺎرﻳﻦ
Balanced Two-Way-Merge * اﻟﺘﺮﺗﻴﺐ ﺑﺎﻟﺪﻣﺞ اﻟﻤﺘﻮازي ذي اﻟﻤﺴﺎرﻳﻦ
Poly phase Two-Way-Merge * اﻟﺘﺮﺗﻴﺐ ﺑﺎﻟﺪﻣﺞ ﻣﺘﻌﺪد اﻻﻃﻮار
3
اﻟﺪورة اﻟﺪورة اﻟﺪورة اﻟﺪورة اﻟﺪورة اﻟﺪورة اﻟﺪورة ﻣﻘﺎرﻧﺔ ﻣﻘﺎرﻧﺔ ﻣﻘﺎرﻧﺔ ﻣﻘﺎرﻧﺔ ﻣﻘﺎرﻧﺔ ﻣﻘﺎرﻧﺔ ﻣﻘﺎرﻧﺔ
)(7 )(6 )(5 )(4 )(3 )(2 )(1 )(7 )(6 )(5 )(4 )(3 )(2 )(1 اﻟﻘﺎﺋﻤﺔ
5 5 5 5 5 5 5 5 43 43 43 43 43 43 43
11 11 11 11 11 11 43 43 5 54 54 54 54 54 54
17 17 17 17 17 43 54 54 54 5 11 11 11 11 11
41 41 41 41 43 54 11 11 11 11 5 41 41 41 41
43 43 43 43 54 17 41 41 41 41 41 5 93 93 93
54 54 54 54 41 41 93 93 93 93 93 93 5 17 17
66 66 66 66 66 93 17 17 17 17 17 17 17 5 5
93 93 93 93 93 66 66 66 66 66 66 66 66 66 66
ﺧﻄﻮات اﻟﺤﻞ-:
وﻧﻀﻊ اﻟﻌﻨﺎﺻﺮ اﻻآﺒﺮ ﻋﻠﻰ ﺟﻬﺔ اﻟﻴﻤﻴﻦ واﻻﺻﻐﺮ ﻋﻠﻰ اﻟﻴﺴﺎر Gap=4 ﻻ -:ﻧﺨﺘﺎر ﻣﺴﺎﻓﺔ وهﻤﻴﺔ ﻣﻘﺪرهﺎ
او ً
4
43 17 5 41 93 54 11 66
Result
5 17 11 41 43 54 93 66
ﻓﻜﺮﺗﻬﺎ-:
اﺧﺘﻴﺎر ﻋﻨﺼﺮ ﻣﻦ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﻤﻌﻄﺎة ﻣﺜﻞ ) Xاﻻﻓﻀﻞ ان ﻳﻜﻮن اﻟﻌﻨﺼﺮ اﻟﻮﺳﻄﻲ( ﺛﻢ ﻧﺠﻌﻞ اﻟﻌﻨﺎﺻﺮ اﻟﺘﻲ ﻗﻴﻤﺘﻬﺎ اﻗ ﻞ ﻣ ﻦ xﻗﺒﻠ ﻪ ﻓ ﻲ
اﻟﻘﺎﺋﻤﺔ اﻣﺎ اﻟﻌﻨﺎﺻﺮ اﻟﺘﻲ ﺗﻜﻮن ﻗﻴﻤﺘﻬﺎ اآﺒﺮ ﻣﻦ xﺑﻌﺪﻩ ﺛﻢ ﺗﺘﻢ ﻋﻤﻠﻴﺔ اﻟﻤﺴﺢ اﻟﺘﺼﺎﻋﺪي ﻟﻌﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﺘﻲ ﺗﻘ ﻊ ﻗﺒ ﻞ اﻟﻌﻨ ﺼﺮ xﻓ ﺎذا وﺟ ﺪﻧﺎ
ﻋﻨﺼﺮ اآﺒﺮ ﻣﻨﻪ ﻧﺤﺪدﻩ )أي ﻧﻀﻊ اﺷﺎرة( ﺛﻢ ﻧﻤﺴﺢ ﺗﻨﺎزﻟﻴًﺎ ﻋﻨﺎﺻﺮ اﻟﻘﺎﺋﻤﺔ اﻟﻮاﻗﻌﺔ ﺑﻌﺪ xﻓﺎن وﺟﺪﻧﺎ ﻋﻨﺼﺮ اﻗﻞ ﻣﻨﻪ ﻧﺤ ﺪدﻩ اﻳ ﻀًﺎ ﺛ ﻢ ﻧﺠ ﺮي
ﻋﻤﻠﻴﺔ اﻟﺘﺒﺪﻳﻞ ﺑﻴﻨﻬﻤﺎ وﻧﺴﺘﻤﺮ ﺣﺘﻰ ﺗﺘﺮﺗﺐ اﻟﻘﺎﺋﻤﺔ.
5
ﺧﻄﻮات اﻟﺤﻞ-:
اﻟﻤﺮﺣﻠﺔ اﻻوﻟﻰ:
X= 41
ﻻ -:ﻧﺨﺘﺎر
او ً
اذن ﺗﺒﻘﻰ ﻣﻜﺎﻧﻬﺎ 41<66
اذن ﻧﻀﻊ اﺷﺎرة ﻋﻠﻰ اﻟـ 5 41>5
41<43اذن ﻧﻀﻊ اﺷﺎرة ﻋﻠﻰ اﻟـ 43
ﻧﺠﺮي ﻋﻤﻠﻴﺔ اﻟﺘﺒﺪﻳﻞ ﻓﺘﺼﺒﺢ اﻟﻘﺎﺋﻤﺔ هﻲ-:
5 54 11 41 93 17 43 66
6
-:ﻣﻼﺣﻈﺎت ﻋﺎﻣﺔ
ﻋﻨﺪﻣﺎ ﻧﻀﻊ اﺷﺎرة ﻋﻠﻰ ﻋﻨﺼﺮ ﻓﺎﻧﻪ ﻳﻨﺘﻘﻞ اﻟﻰ اﻟﺠﻬﺔ اﻻﺧﺮى ﻣﻦ اﻟﻘﺎﺋﻤﺔ.1
( 2N*Ln N ) ﻳﻜﻮن اآﺒﺮ ﻋﺪد ﻣﻦ اﻟﻤﻘﺎرﻧﺎت اﻟﻰ هﺬﻩ اﻟﻄﺮﻳﻘﺔ هﻮ.2
هﺬﻩ اﻟﻄﺮﻳﻘﺔ ﺗﻜﻮن ﻣﻔﻴﺪة اﻟﻰ ﻟﻠﻘﻮاﺋﻢ اﻟﺘﻲ ﺗﻜﻮن ﻏﻴﺮ ﻣﺮﺗﺒﺔ اﻟﻰ ﺣﺪ آﺒﻴﺮ وﻏﻴﺮ ﻋﻤﻠﻴﺔ ﻟﻠﻘﻮاﺋﻢ ﺷﺒﻪ اﻟﻤﺮﺗﺒﺔ.3
Public sub Quicksort(byref list as string, byref F as integer, byref L as integer )
Dim I as integer
Dim j as integer
Dim x as integer{or any other type}
I=f
J=L
X=list((i+j) / 2)
Repeat
While list(i)<x do i=i+1
While x< list(j) do j=j+1
If i<=j then
Swap(list(i),list(j))
I=i+1
J=j+1
End if
Loop untie i<j
If f<j then Quicksort(list,f,j)
End if
If i<L then Quicksort(list,i,L)
End if
End sub