Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Turbo Pascal] Sortowanie.

Siber 16 Wrz 2004 13:19 2339 4
  • #1 16 Wrz 2004 13:19
    Siber
    Poziom 10  

    Przyślijcie mi program, który będzie sortował elementy tablicy dowolnym rodzajem sortowania. Pomóżcie mi, proszę. mój adres siber1(malpa)wp.pl

    Zamykam. - arnoldziq

    0 4
  • #2 16 Wrz 2004 16:55
    one_eddie
    Poziom 25  

    poszukaj na google o sortowaniu babelkowym itp, przeziez implementacja tych algorytmow jest banalna :)

    0
  • #3 18 Wrz 2004 19:29
    winIO
    Poziom 12  

    W Pascalowym helpie jest gotowy Quick Sort. Oczywiście myślę tu o Turbo Pascalu z Borlanda.

    0
  • #4 19 Wrz 2004 15:40
    rtom
    Poziom 18  

    Dosyc dawno temu przesiadlem sie na C i wylecialo mi juz co nieco z glowy o skladni pascala. Ale alorytm np. sortowania babelkowego jest taki sam. Powiedzmy ze masz 3 puszki z farba (czerwona, zielona i jedna jest pusta). Chcesz czerwona farbe przelac do zielonej. Wiec robisz cos takeigo: wlewasz czerwona do pustej, zeielona do pustej czerwonej, a czerwona do zielonej. Chdozi o to zeby miec te jedna pusta puszke czyli zmienna. I na tym opiera sie cale sortwanie a w programie.

    0
  • #5 19 Wrz 2004 17:03
    Xitami
    Poziom 29  

    Pytanie zadane trochę mało precyzyjnie, bo sortujemy pliki czy tablice, jeśli pliki to jak wielkie?co do bąbelków to dobre są, ale w szampanie.
    Możn wykorzystać jakąś armatę SQL np.

    Sortowanie w pamięci jest znacznie prostrze, jeśli chodzi o pliki, to nie zawsze cały musi zmieścić się w pamięci, wystarczy może odczytać jedno pole z rekordu (klucz) i zapamiętać z nim pozycję w pliku, sortujemy to w pamięci i albo tworzymy nowy (posortowany) plik, albo zapisujemy indeks (tą właśnie posortowaną tablicę) i kiedy chcę odczytać rekord N z pliku, to czytam pozyję N z pliku indeksu i tu mam pozycję w pliku oryginalnym.

    A sortowanie wielkich plików, trzeba by pokombinować chyba jakoś tak:
    - czytać fragmentami, tyle ile zmieści się w pamięci, posortować, zapisać oddzielny, posortowany plik
    -i teraz mamy ileś tam mniejszych posortowanych już plików
    -do tablicy odczytuję pierwszy rekord z każdego (w tablicy tyle pozycji ile plików pośrednich)
    -szukam powiedzmy najmniejszzego
    -ten zapisuję do pliku wynikowego, a do tablicy czytam następny rekord z odpowiedniego pośredniego
    -i tak do wyczerpania
    -trzeba oczywiście uważać żeby nie przeczytać więcej niż można, problemem może być ilość jednocześnie otwartych plików
    Algorytmów sortujących w pamięci jest mrowie, który najlepszy? to zależy, ale wiadomo który jest najgorszy, właśnie bąbelki

    0