A while ago, someone on 4chan posted a fun sorting algorithm. It is called Sleepsort and is not recommended to be usedin production. However, I thought it would be fun to implement it in Delphi.
Here it is (for your amusement):
program Sleepsort; var items: TArray<integer>; i: integer; begin randomize; writeln('Random: '); setlength(items, 25); for i := 0 to High(items) do begin items[i] := random(length(items) * 4); write(IntToStr(items[i]) + ' '); end; writeln; writeln('Sorted: '); for i := 0 to high(items) do begin TSortThread.Create(items[i]); end; readln; end.
unit uSortThread; interface uses Classes; type TSortThread = class (TThread) private fValue : integer; protected procedure Execute; override; public constructor Create(n : integer); end; implementation uses SysUtils; constructor TSortThread.Create(n: integer); begin inherited Create; fValue := n; end; procedure TSortThread.Execute; begin sleep(fValue * 333); // artificial slowdown, to make the process visible for the human eye write(IntToStr(fValue)+' '); end; end.
Keine Kommentare:
Kommentar veröffentlichen