Advertisement
feihung

Sort

Nov 24th, 2014
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.44 KB | None | 0 0
  1. program p24112014;
  2. uses
  3.     DOS, crt;
  4. const
  5.     n = 100;
  6. type
  7.     TabInt = array [1..n] of integer;
  8.  
  9. var
  10.     tab : TabInt;
  11.  
  12. //*************************************************
  13. // Fill the TabInt array with random elements
  14. //*************************************************
  15.  
  16. procedure RandomElements( var t : TabInt );
  17. var
  18.     i : integer;
  19. begin
  20.     randomize;
  21.     for i := 1 to n do
  22.     begin
  23.         t[i] := random(99)+1;
  24.     end;
  25. end;
  26.  
  27. //*************************************************
  28. // Display the TabInt array
  29. //*************************************************
  30.  
  31. procedure DisplayArray( t : TabInt );
  32. var
  33.     i : integer;
  34. begin
  35.     for i := 1 to n do
  36.     begin
  37.         write(t[i], ' ');
  38.     end;
  39.     writeln;
  40. end;
  41.  
  42. //*************************************************
  43. // Swap elements
  44. //*************************************************
  45.  
  46. procedure swap( var a : integer; var b : integer );
  47. var
  48.     tmp : integer;
  49. begin
  50.     tmp := a;
  51.     a := b;
  52.     b := tmp;
  53. end;
  54.  
  55. //*************************************************
  56. // Selection Sort
  57. //*************************************************
  58.  
  59. procedure SelectionSort( var t : TabInt );
  60.     var i, j, k : integer;
  61. begin
  62.     for i := 1 to n do
  63.     begin
  64.         k := i;
  65.         for j := i+1 to n do
  66.         begin
  67.             if t[j] < t[k] then k := j;
  68.         end;
  69.         swap( t[k], t[i] );
  70.     end;
  71. end;
  72.  
  73. //*************************************************
  74. // Insert Sort
  75. //*************************************************
  76.  
  77. procedure InsertSort( var t : TabInt );
  78. var
  79.     i, j, x : integer;
  80. begin
  81.     for j := n-1 downto 1 do
  82.     begin
  83.         x := t[j];
  84.         i := j + 1;
  85.         while ( i <= n ) and ( x > t[i] ) do
  86.         begin
  87.             t[i-1] := t[i];
  88.             i := i + 1;
  89.         end;
  90.         t[i-1] := x;
  91.     end;
  92. end;
  93.  
  94. //*************************************************
  95. // Bubble Sort
  96. //*************************************************
  97.  
  98. procedure BubbleSort( var t : TabInt );
  99. var
  100.     i, j : integer;
  101.     p : boolean;
  102. begin
  103.     for i := 1 to n do
  104.     begin
  105.         p := true;
  106.         for j := 1 to n-i do
  107.         begin
  108.             if t[j] > t[j+1] then
  109.             begin
  110.                 swap( t[j], t[j+1] );
  111.                 p := false
  112.             end;
  113.         end;
  114.         if ( p = true ) then break
  115.     end;
  116. end;
  117.  
  118. //*************************************************
  119. // Main Function
  120. //*************************************************
  121.  
  122. begin
  123.  
  124.     RandomElements( tab );
  125.  
  126.     writeln('Tablica przed posortowaniem');
  127.     writeln;
  128.     DisplayArray( tab );
  129.     writeln;
  130.  
  131.     BubbleSort( tab );
  132.  
  133.     writeln('Tablica po posortowaniu');
  134.     writeln;
  135.     DisplayArray( tab );
  136.     writeln;
  137.  
  138.     readln;
  139. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement