algorytm.org

Implementacja w Delphi/Pascal

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sortowanie przez wymianę/wybór (selectionsort) - Implementacja w Delphi/Pascal
Ocena użytkownikóww: *****  / 3
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 13 sierpnia 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

select_d/SortWym.pas:
//sortowanie przez wymianę
//www.algorytm.org
//Tomasz Lubiński (c)2001

unit SortWym;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    ListBox2: TListBox;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Label3: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  z: Array[1..100] of Integer;
  n:Integer;

implementation

{$R *.DFM}

procedure TForm1.Button2Click(Sender: TObject);
var a:Integer;
begin
n:=100;                             //liczba elementów do sorotwania
Button1.Enabled:=True;              //uaktywnienie przycisku sortuj
ListBox1.Items.Clear;               //wyczyszczenie list box'ów
ListBox2.Items.Clear;
randomize;
for a:=1 to n do
 begin
 z[a]:=Random(200);                  //zakres nieposorotwanych od 0 do 200
 ListBox1.Items.Add(IntToStr(z[a])); //dodawanie elentów do listy nieposortowane
 end

end;

procedure TForm1.Button1Click(Sender: TObject);
var
c,b,x,i: Integer;
begin
Button1.Enabled:=False;
 for b:=1 to n do
  begin
  c:=b;
   for i:=b to n do
    if z[i]< z[c] then c:=i;
   x:=z[b];
   z[b]:=z[c];
   z[c]:=x;
  end;

 for c:=1 to n do
  ListBox2.Items.Add(IntToStr(z[c]));

end;

end.
Dodaj komentarz