Bubble sort
From Lazarus wiki
Jump to navigationJump to searchThe printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
│
English (en) │
suomi (fi) │
français (fr) │
Bubble sort is a simple sorting algorithm.
Characteristics
- Very slow
- Suitable only for small quantities sorting
- Fast only when the array is nearly sorted
Unit UBubbleSort
unit UBubbleSort;
interface
type
// data type
TItemBubbleSort=integer;
procedure BubbleSort( var a: array of TItemBubbleSort );
implementation
procedure swap( var a, b:TItemBubbleSort );
var
temp : TItemBubbleSort;
begin
temp := a;
a := b;
b := temp;
end;
procedure BubbleSort( var a: array of TItemBubbleSort );
var
n, newn, i:integer;
begin
n := high( a );
repeat
newn := 0;
for i := 1 to n do
begin
if a[ i - 1 ] > a[ i ] then
begin
swap( a[ i - 1 ], a[ i ]);
newn := i ;
end;
end ;
n := newn;
until n = 0;
end;
end.
Example of usage
uses
UBubbleSort
...
var
a: array[0..100] of integer;
begin
...
BubbleSort(a);
...