мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
pascal:sort [20/09/2011 14:22] – dnaumov | pascal:sort [21/10/2011 12:07] (текущий) – ybezrukov | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ===== Сортировка пузырьком ===== | ||
+ | |||
+ | < | ||
+ | |||
<code pascal| Сортировка пузырьком> | <code pascal| Сортировка пузырьком> | ||
const | const | ||
Строка 24: | Строка 28: | ||
for I := 1 to N do A[I] := random(N); | for I := 1 to N do A[I] := random(N); | ||
for I := 1 to N do write(A[I],' | for I := 1 to N do write(A[I],' | ||
- | | + | writeln; |
| | ||
for I := 1 to N do write(A[I],' | for I := 1 to N do write(A[I],' | ||
Строка 30: | Строка 34: | ||
</ | </ | ||
- | < | + | < |
+ | |||
+ | class BubbleSort{ | ||
+ | | ||
+ | for(int i = a.length - 1; i >= 0; i--){ | ||
+ | for (int j = 0; j < a.length - 1; j++){ | ||
+ | if (a[j] > a[j+1]){ | ||
+ | float tmp = a[j]; | ||
+ | a[j] = a[j+1]; | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | return a; | ||
+ | } | ||
+ | | ||
+ | int N = 100; | ||
+ | float a[]; | ||
+ | a = new float[N]; | ||
+ | for(int i = 0; i < a.length; i++){ | ||
+ | a[i] = (float)Math.random() * 100; | ||
+ | } | ||
+ | a = sort(a); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Сортировка выбором ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | <code pascal| Сортировка выбором> | ||
const | const | ||
N = 100; | N = 100; | ||
Строка 55: | Строка 91: | ||
for I := 1 to N do A[I] := random(N); | for I := 1 to N do A[I] := random(N); | ||
for I := 1 to N do write(A[I],' | for I := 1 to N do write(A[I],' | ||
- | | + | writeln; |
| | ||
for I := 1 to N do write(A[I],' | for I := 1 to N do write(A[I],' | ||
end. | end. | ||
</ | </ | ||
+ | |||
+ | ===== Быстрая сортировка ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | <code pascal| Быстрая сортировка> | ||
+ | const | ||
+ | N = 100; | ||
+ | var | ||
+ | A : array [1..N] of integer; | ||
+ | I, J : integer; | ||
+ | |||
+ | procedure QuickSort; | ||
+ | |||
+ | procedure QSort(iLo, iHi: Integer); | ||
+ | var | ||
+ | Lo, Hi, Mid, T: Integer; | ||
+ | begin | ||
+ | Lo := iLo; | ||
+ | Hi := iHi; | ||
+ | Mid := A[(Lo + Hi) div 2]; | ||
+ | repeat | ||
+ | while A[Lo] < Mid do Inc(Lo); | ||
+ | while A[Hi] > Mid do Dec(Hi); | ||
+ | if Lo <= Hi then | ||
+ | begin | ||
+ | T := A[Lo]; | ||
+ | A[Lo] := A[Hi]; | ||
+ | A[Hi] := T; | ||
+ | Inc(Lo); | ||
+ | Dec(Hi); | ||
+ | end; | ||
+ | until Lo > Hi; | ||
+ | if Hi > iLo then QSort(iLo, Hi); | ||
+ | if Lo < iHi then QSort(Lo, iHi); | ||
+ | end; | ||
+ | |||
+ | begin | ||
+ | QSort(1, N); | ||
+ | end; | ||
+ | |||
+ | begin | ||
+ | | ||
+ | for I := 1 to N do A[I] := random(N); | ||
+ | for I := 1 to N do write(A[I],' | ||
+ | | ||
+ | | ||
+ | for I := 1 to N do write(A[I],' | ||
+ | end. | ||
+ | </ | ||
+ | |||
+ | ===== Другие алгоритмы ===== | ||
+ | |||
+ | [[pascal: |