sortowanie

nika88
Użytkownik
Użytkownik
Posty: 65
Rejestracja: 6 lip 2008, o 18:07
Płeć: Kobieta
Lokalizacja: Mazowsze
Podziękował: 6 razy

sortowanie

Post autor: nika88 »

Witam.
Mam ogromną prośbę, czy ktoś mógłby mi napisać w Pascalu program z procedurą sortującą wylosowane cyfry metodą kubełkową.
Byłabym bardzo wdzięczna.
arecek
Użytkownik
Użytkownik
Posty: 283
Rejestracja: 26 sty 2007, o 22:11
Płeć: Mężczyzna
Podziękował: 4 razy
Pomógł: 93 razy

sortowanie

Post autor: arecek »


// Sortowanie kubełkowe - wersja II
//-------------------------------------------------
// (C)2005 mgr Jerzy Wałaszek
// I Liceum Ogólnokształcące
// im. K. Brodzińskiego
// w Tarnowie
//-------------------------------------------------

const
N = 40;
WMIN = -1000.0;
WMAX = 1000.0;

// Tutaj definiujemy typ elementów listy

type

TElement = record
nastepnik : cardinal;
dane : real;
end;

// Tutaj deklarujemy zmienne

var
d : array[1..N] of real;
L : array[1..N] of TElement;
K : array[0..N] of integer;
we,szkb : real;
ikb,ine,ip,ib,i,j : integer;

begin
writeln(' Sortowanie Kubelkowe II ');
writeln('------------------------------');
writeln(' (C)2005 mgr Jerzy Walaszek ');
writeln;

// Generujemy zawartość tablicy d[] i wyświetlamy ją

randomize;
writeln('Przed sortowaniem:');
writeln;
for i := 1 to N do
begin
d := WMIN + random() * (WMAX - WMIN);
write(d:8:2);
end;
writeln;

// Zerujemy kubełki

for i := 0 to N do K := 0;

// Obliczamy szerokość kubełka

szkb := (WMAX - WMIN) / N;
ine := 1;

// Rozrzucamy poszczególne elementy d na listach K[]

for i := 1 to N do
begin
we := d;
ikb := round((we - WMIN) / szkb);
L[ine].nastepnik := 0; L[ine].dane := we;
ip := 0; ib := K[ikb];
while (ib > 0) and (L[ib].dane 0 do
begin
d[j] := L.dane;
inc(j); i := L.nastepnik;
end;
end;

// Koniec. Wyświetlamy wyniki

writeln('Po sortowaniu:');
writeln;
for i := 1 to N do write(d:8:2);
writeln;
writeln('KONIEC. Nacisnij klawisz Enter...');
readln;
end.
nika88
Użytkownik
Użytkownik
Posty: 65
Rejestracja: 6 lip 2008, o 18:07
Płeć: Kobieta
Lokalizacja: Mazowsze
Podziękował: 6 razy

sortowanie

Post autor: nika88 »

byłoby ok, gdyby nie to, że połowy tego programu nie rozumiem... Co to jest? "TElement = record nastepnik : cardinal; "? No i po co mi trzy tablice?? Czy ktoś wie, jak to zrobić prościej?
Awatar użytkownika
kwak2k
Użytkownik
Użytkownik
Posty: 24
Rejestracja: 13 paź 2008, o 09:56
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz
Pomógł: 6 razy

sortowanie

Post autor: kwak2k »

tutaj masz uproszczona wersje sortowania wraz z pełnym opisem algorytmu ,
o ile sie nie myle produkcja tego samego autora co powyzej
kilka przykladowych kodow zrodlowymi (w tym devpascal) na dole strony
nika88
Użytkownik
Użytkownik
Posty: 65
Rejestracja: 6 lip 2008, o 18:07
Płeć: Kobieta
Lokalizacja: Mazowsze
Podziękował: 6 razy

sortowanie

Post autor: nika88 »

Dziękuję bardzo za pomoc.
ODPOWIEDZ