ፍልልይ ኣብ መንጎ ክለሳታት «ኮምፒዩተር ሳይንስ»

Content deleted Content added
No edit summary
No edit summary
መስመር 20፦
 
ገና ስእሊ ክመጽእ እዩ....
 
 
 
 
እቲ ዝስዕብ ኣገባብ (= function) ነቲ ቀንዲ ባእታ ይደሊ፣
ነቲ ዓውዲ (files[ ]) ከኣ ይመቅሎ፥
 
 
ቀንዲ ባእታ = Pivot
 
function divide(left, right) {
i := left
// ካብቲ ቀንዲ ባእታ ብጸጋም ዘሎ ‚j’ ይጀምር፥
j := right - 1
pivot := files[right]
 
loop
 
// ካብቲ ቀንዲ ባእታ ዝዓበየ ባእታ ኣብ ጸጋም ዘሎ ይደሊ፥
 
loop while files[i] ≤ pivot and i < right
i := i + 1
end
 
// ካብቲ ቀንዲ ባእታ ዝነኣሰ ባእታ ኣብ የማን ዘሎ ይደሊ፥
 
loop while files[j] ≥ pivot and j > left
j := j - 1
end
 
if i ≤ j then swap files[i] with files[j]
 
while i ≤ j // እቲ ‘i’ kabti ‘j’ ከይሓለፈ ከሎ
 
// ነቲ ቀንዲ ባእታ (files[right]) ምስ ሓድሽ ውሱን ኣቀማምጣ (files[i]) ይለዋወጥ፥
if files[i] > pivot
swap files[i] with files[right]
end
// ነቲ ቦታ ናይቲ ቀንዲ ባእታ ይመልስ፥
return i
end
 
}
 
 
 
ሕጂ እቲ ዝስዕብ ኣገባብ ነቲ ምሉእ ክዊክሶርት ምስቲ ላዕላዋይ ኣገባብ ብሓፈሽኡ ይገልጽ፥
 
function quicksort(left, right)
while right > left loop
divider := divide (left, right)
if right-divider > divider-left
quicksort(left, divider - 1) // እቲ ዝንእስ ክፋል እንደገና …
left := divider + 1 // … እቶም ዝዕብይ ከኣ ይሰርዕ
else
quicksort(divider + 1, right)
right := divider - 1
end
end
end