мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| pascal:sort [20/09/2011 14:20] – создано dnaumov | pascal:sort [21/10/2011 12:07] (текущий) – ybezrukov | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | < | + | ===== Сортировка пузырьком ===== |
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| const | const | ||
| N = 100; | N = 100; | ||
| Строка 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],' | ||
| end. | end. | ||
| </ | </ | ||
| + | |||
| + | <code java| Сортировка пузырьком> | ||
| + | |||
| + | 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 | ||
| + | N = 100; | ||
| + | var | ||
| + | A : array [1..N] of integer; | ||
| + | I, J : integer; | ||
| + | |||
| + | procedure SelectionSort; | ||
| + | var | ||
| + | T: Integer; | ||
| + | begin | ||
| + | for I := 1 to N-1 do | ||
| + | for J := N downto I+1 do | ||
| + | if A[I] > A[J] then | ||
| + | begin | ||
| + | T := A[I]; | ||
| + | A[I] := A[J]; | ||
| + | A[J] := T; | ||
| + | end; | ||
| + | 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. | ||
| + | </ | ||
| + | |||
| + | ===== Быстрая сортировка ===== | ||
| + | |||
| + | < | ||
| + | |||
| + | <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: | ||