{* Сортировка массива методом Шелла *}
REM basic
'
Сортировка массива методом Шелла
10 lens = 10: {Количество элементов массива
}20 diap = 100: {Диапазон значений
}30
Dim A(lens)
40 mit = 0: {Переменная для перестановки
}50 st = 0: {Шаг
}60 i = 0
70 j = 0
80 CLS
90 RANDOMIZE (time): {Инициализация случайного выбора
}100
For i= 1 ТО lens
110 A(i) = INT(RND*diap): {Заполнение массива
}120
Next i
130 st = lens2: {Вычисление шага
}140
For i=1
To lens
150 PRINT A(i);" ";: REMРаспечатка массива
160
Next i
170 PRINT
180
If st lens - st
GoTo 310: {Цикл сравнения через шаг
}230 {Если больше, то элементы меняются местами
}240
If A(i) > A(i + st)
Then mit = A(i): A(i) = A(i + st): A(i + st) = mit
250 i = i + st
260
GoTo 260
270
Next j
280 st = st 2: {Уменьшение шага
}290
GoTo 220
300
For i = 1
To lens
310 PRINT A(i);" ";
320
Next i
330
End