shelsort.BAS

{* Сортировка массива методом Шелла *}

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