Sorotwanie przez indeksowanie

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 :stuck_out_tongue:

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).

  1. Z tablicą indeksującą

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
  1. 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: :?