Witam
Mam do napisania w Pascalu sortowanie przez indeksowanie ale nie wiem jak to wygląda. Ktoś się może spotkał z tym i wie jak to napisać? Może jakiś przykład kodu programu? Przeszukałem internet ale nic nie znalazłem na ten temat:(
Witam
Mam do napisania w Pascalu sortowanie przez indeksowanie ale nie wiem jak to wygląda. Ktoś się może spotkał z tym i wie jak to napisać? Może jakiś przykład kodu programu? Przeszukałem internet ale nic nie znalazłem na ten temat:(
Patrz pod szukanie przez zliczanie, nie ma siły żeby nie było w internecie opisane
jest w internecie ale w języku C a ja potrzebuje w Pascalu.
to nie o to
Nie spotkałem się z zadaniem implementowania “sortowania przez indeksowanie”. Indeksowanie ma tylko sens w przypadku gigantycznych danych, których nie da się umieścić w całości w pamięci (stąd zastosowanie indeksowania w bazach danych). Jako że nie wiadomo mi by był to problem typowy, poniżej znajdą się dwie propozycje implementacji zakładających, że sortujesz dużą ilość długich tekstów (np. sortujesz tablicę zawierającą imiona i nazwiska - oba w jednym polu).
Każdemu wpisowi przypisujesz krótki tag (indeks) którym mogą być przykładowo pierwsze 4 litery nazwiska (jeśli sortujesz po nazwisku). Sortujesz indeksy a następnie w granicach powtarzalnych indeksów dokonujesz sortowania na właściwych danych.
Dane
1 Zygmunt Nowak
2 Maria Nowak
3 Piotr Wysocki
4 Marcin Rębała
5 Karolina Kromka
6 Adam Atol
Indeksy
1 Nowa
2 Nowa
3 Wyso
4 Ręba
5 Krom
6 Atol
Sortujesz indeksy:
6 Atol
5 Krom
1 Nowa \ taki sam
2 Nowa / indeks
4 Ręba
3 Wyso
Odtwarzasz posortowaną tablicę sortując te same indeksy
6 Adam Atol
5 Karolina Kromka
2 Maria Nowak
1 Zygmunt Nowak
4 Marcin Rębała
3 Piotr Wysocki
Z odwrotną tablicą indeksującą Ponownie tworzysz tagi, ale nie zapisujesz Listy tagów tylko tworzysz odwrotną tablicę indeksującą. Sortujesz tagi, sortujesz pola w ramach tego samego tagu.
Dane
1 Zygmunt Nowak
2 Maria Nowak
3 Piotr Wysocki
4 Marcin Rębała
5 Karolina Kromka
6 Adam Atol
Odwrotna tablica indeksująca
Nowa 1 2
Wyso 3
Ręba 4
Krom 5
Atol 6
Sortujesz indeksy:
Atol 6
Krom 5
Nowa 1 2
Ręba 4
Wyso 3
Odtwarzasz posortowaną tablicę sortując te same indeksy
6 Adam Atol
5 Karolina Kromka
2 Maria Nowak
1 Zygmunt Nowak
4 Marcin Rębała
3 Piotr Wysocki
Kodu nie będzie, bo czuję, że potrzebujesz to na zaliczenie. A gotowców na zaliczenie na tym forum NIE dostaniesz. Poza tym skoro masz kod w C to w czym problem? :roll: :?