|
QUICK SORT усиление сортировкой INSERT
Я бы хотел узнать как правильно записать CUTOFF,который рекомендуется
для QUICK SORT если элементов в массиве например не велико, ну допустим колеблется от 3 до 30-40. С тем чтобы вызвать сортировку вставкой.
И использую например такой алгоритм на VB
Т.е где его добавить и как его определить в зависимости от количества элементов ?
Спасибо
Sub QUICK_SORT_FULL(X, Y)
' If Y > X + CUTOFF Then
If Y > X Then
Dim XX
Dim YY
Dim PAT
'--------------------------------------------------
PAT = (X + Y) * 0.5 '(/2)
PAT = L(PAT).G_B2
XX = X
YY = Y
'--------------------------------------------------
Do
Do While L(XX).G_B2 > PAT: XX = XX + 1: Loop
Do While L(YY).G_B2 < PAT: YY = YY - 1: Loop
If XX > YY Then Exit Do
CopyMemory TEMP, L(YY), 10
CopyMemory L(YY), L(XX), 10
CopyMemory L(XX), TEMP, 10
XX = XX + 1
YY = YY - 1
Loop While XX <= YY
If X<Y then QUICK_SORT_FULL XX, Y
If X < YY Then QUICK_SORT_FULL X, YY
'If YY > SORT_FERST Then QUICK_SORT_FULL X, YY
'If YY > SORT_FERST + CUTOFF Then QUICK_SORT_FULL X, YY
End If
|