мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
pascal:sort [20/09/2011 14:22] dnaumovpascal:sort [21/10/2011 12:07] (текущий) ybezrukov
Строка 1: Строка 1:
 +===== Сортировка пузырьком =====
 +
 +<flashplayer width=320 height=260>file=http://wiki.nsunc.com/_media/sorting/bubble-sort.flv</flashplayer>
 +
 <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;+   writeln; writeln;
    BubbleSort;    BubbleSort;
    for I := 1 to N do write(A[I],' ');    for I := 1 to N do write(A[I],' ');
Строка 30: Строка 34:
 </code> </code>
  
-<code pascal| Сортировка выборкой>+<code javaСортировка пузырьком> 
 + 
 +class BubbleSort{ 
 +   static float[] sort(float[] a){ 
 +      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]; 
 +               a[j+1] = tmp; 
 +            } 
 +         } 
 +      } 
 +      return a; 
 +   } 
 +   public static void main(String[] args) { 
 +      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> 
 + 
 +===== Сортировка выбором ===== 
 + 
 +<flashplayer width=320 height=260>file=http://wiki.nsunc.com/_media/sorting/select-sort.flv</flashplayer> 
 + 
 +<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;+   writeln; writeln;
    SelectionSort;    SelectionSort;
    for I := 1 to N do write(A[I],' ');    for I := 1 to N do write(A[I],' ');
 end. end.
 </code> </code>
 +
 +===== Быстрая сортировка =====
 +
 +<flashplayer width=320 height=260>file=http://wiki.nsunc.com/_media/sorting/quick-sort.flv</flashplayer>
 +
 +<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
 +   Randomize;
 +   for I := 1 to N do A[I] := random(N);
 +   for I := 1 to N do write(A[I],' ');
 +   writeln; writeln;
 +   QuickSort;
 +   for I := 1 to N do write(A[I],' ');
 +end.
 +</code>
 +
 +===== Другие алгоритмы =====
 +
 +[[pascal:anysort|Другие алгоритмы сортировки]]