Advertisement
AndreyKlipikov

Sorting

Feb 4th, 2014
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.77 KB | None | 0 0
  1. program test;
  2. var
  3.     a,b:array[1..15] of integer;
  4.         c,d,e,f:integer;
  5. begin
  6. randomize;
  7.  
  8. {заполняем массив случайными числами от 0 до 90}
  9. for c:=1 to 15 do
  10.     a[c]:=random(90);
  11.  
  12. {выводим сгенерированный массив}
  13. for c:=1 to 15 do
  14.     write(a[c],' ');
  15. writeln;
  16. writeln;
  17.  
  18. {счётчик для массива b}
  19. e:=1;
  20.  
  21. {записываем в начало массива b четные элементы массива а}
  22. for c:=1 to 15 do
  23.     if c mod 2 = 0 then
  24.         begin
  25.             b[e]:=a[c];
  26.                 e:=e+1;
  27.         end;
  28.  
  29. {теперь записываем в продолжение массива b нечетные элементы массива а}
  30. for c:=1 to 15 do
  31.     if c mod 2 = 1 then
  32.         begin
  33.             b[e]:=a[c];
  34.                 e:=e+1;
  35.         end;
  36.  
  37. {Временная переменная для сортировки пузырьком}
  38. f:=0;
  39.  
  40. {сортируем первую половину массива b, где у нас находятся четные элементы}
  41. for c:=1 to 7 do
  42.     for d:=c to 7 do
  43.             if b[c] > b[d] then
  44.                 begin
  45.                         f:=b[d];
  46.                         b[d]:=b[c];
  47.                         b[c]:=f;
  48.                 end;
  49.  
  50. {сортируем вторую половину массива b, где у нас находятся нечетные элементы}
  51. for c:=8 to 15 do
  52.     for d:=c to 15 do
  53.             if b[c] > b[d] then
  54.                 begin
  55.                         f:=b[d];
  56.                         b[d]:=b[c];
  57.                         b[c]:=f;
  58.                 end;
  59.  
  60. {выводим итоговый отсортированный массив}
  61. for c:=1 to 15 do
  62.     write(b[c],' ');
  63.  
  64. readln;
  65. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement