eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › sortowanie
Ilość wypowiedzi w tym wątku: 29

  • 1. Data: 2012-07-14 17:55:06
    Temat: sortowanie
    Od: "identyfikator: 20040501" <N...@g...pl>

    a może Panowie znają jakiś cwany algorytm sortowania adresów IP? żeby nie
    wychodziło coś takiego:
    213.186.127.10
    213.186.127.11
    213.186.127.12
    213.186.127.13
    213.186.127.14
    213.186.127.2
    213.186.127.28
    213.186.127.3
    213.186.127.4
    213.186.127.5
    213.186.127.6
    213.186.127.7
    213.186.127.8
    213.186.127.9


  • 2. Data: 2012-07-14 18:31:13
    Temat: Re: sortowanie
    Od: PK <k...@n...pl>

    On 2012-07-14, identyfikator: 20040501 <N...@g...pl> wrote:
    > a może Panowie znają jakiś cwany algorytm sortowania adresów IP? żeby nie

    ip: a.b.c.d

    x := (a * 256 + b) * 256 + c) * 256 + d
    Sortujesz x'sy i odwracasz do formy adresów.

    Jakby nie patrzeć: IP to po prostu 32-bitowa liczba binarna.

    Chyba że chcesz napisać coś już pod IPv6 (128 bitów). Wtedy najlepiej
    podzielić adres na części (tzn. np 4 liczby), co trochę zwiększa
    liczbę porównań.

    W wariancie ekstremalnym możesz podzielić cały adres na pojedyncze
    cyfry (zapisane w wektorze), co jest równoważne porównywaniu stringów.
    Musisz tylko powstawiać brakujące zera.

    W ogólności jest to metoda koszmarnie wolna, ale warto o niej pamiętać.

    pozdrawiam,
    PK


  • 3. Data: 2012-07-14 23:19:38
    Temat: Re: sortowanie
    Od: Maciej Sobczak <s...@g...com>

    W dniu sobota, 14 lipca 2012 17:55:06 UTC+2 użytkownik identyfikator: 20040501
    napisał:

    > a może Panowie znają jakiś cwany algorytm sortowania adresów IP? żeby nie
    > wychodziło coś takiego:
    > 213.186.127.10
    > 213.186.127.11
    > 213.186.127.12
    > 213.186.127.13
    > 213.186.127.14
    > 213.186.127.2
    > 213.186.127.28
    > 213.186.127.3
    > 213.186.127.4
    > 213.186.127.5
    > 213.186.127.6
    > 213.186.127.7
    > 213.186.127.8
    > 213.186.127.9

    A dlaczego ma tak nie wychodzić?

    Czyli: po co w ogóle chcesz te adresy sortować? Np. gdybyś chciał sortować daty, to
    kolejność sortowania powinna odpowiadać kolejności chronologicznej i wtedy rozumiem,
    co chcesz zrobić - ale adresy IP? Jakie jest znaczenie tej kolejności i dlaczego
    powyższa kolejność jest zła?

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 4. Data: 2012-07-15 00:21:15
    Temat: Re: sortowanie
    Od: PK <k...@n...pl>

    On 2012-07-14, Maciej Sobczak <s...@g...com> wrote:
    > Jakie jest znaczenie tej kolejności i dlaczego powyższa kolejność
    > jest zła?

    Ponieważ adres ip to specyficznie zapisana liczba naturalna i ta
    sekwencja wyżej nie odpowiada porządkowi. A po co sortować? Najlepiej
    mieć jakiś praktyczny problem, ale fun i łamigłówka to też niezły
    powód :).

    Sporadycznie konwencje podobne do IP wykorzystuje się przy kodowaniu
    jakichś produktów (tzn. masz x cech opisanych liczbami i zamieniasz
    je jednoznacznie na jednego INTa - czasem wygodniejszego.

    Nawet raz dostałem takie zadanie w procesie kwalifikacyjnym :D.
    Tam też sortowanie ułatwiało sprawę.

    W ogólności sortuje się najczęściej po to, żeby przyspieszać
    wyszukiwanie :)

    pozdrawiam,
    PK


  • 5. Data: 2012-07-15 11:05:30
    Temat: Re: sortowanie
    Od: "slawek" <h...@s...pl>

    Użytkownik "identyfikator: 20040501" napisał w wiadomości grup
    dyskusyjnych:jts4oq$l0$...@n...news.atman.pl...

    >a może Panowie znają jakiś cwany algorytm sortowania adresów IP? żeby nie
    >[...]

    Panienka z biura - otwórz Excel, przepisz adresy, znajdź guzik "sortuj".

    MSCB (Certified Blonde/Brunette) - użyj Excela, wizard importuj, rozdziel
    adresy na kolumny, posortuj, wyeksportuj. Oczywiście zrób to z poziomu
    VBScript albo innego C#.

    MSCP (Microsoft Certified Professional) -
    http://office.microsoft.com/pl-pl/access-help/sortow
    anie-adresow-ip-HA010062718.aspx

    Gimbus - funkcja rand(0) do sortowania - ułóż listę adresów IP w kolejności
    losowej, jeżeli to jest dobra kolejność przestań, jeżeli zła - uruchom
    program jeszcze raz. Bardziej zdolni mogą rozbudować to do algorytmu
    genetycznego (odrzucane rozwiązania pokazują programowi czego ma unikać!)
    Trochę wolno działa, ale jaki fun!

    Liceum: zapisz adresy cyframi rzymskimi. Dzwonek przerwie twoje męki.

    Japońsko-Polska Szkoła Czegoś: zapisz adresy słownie, używając języka
    japońskiego. (Hint: użyj Javy i Google Translatora.)

    A'la SETI: poproś kolegów z FB - każdemu daj w ramach distributed computing
    część adresów do sortowania. Oczywiście najlepiej zadziała masz 4-literowy
    nick Gaga, Doda itp.

    Old school: wyrównaj między kropkami dopisując zera na początku (sed),
    posortuj (sort), usuń wiodące zera (sed).

    Very Old School: użyj perforatora i kolatora.

    Hacker way: awk '!/myip/' # no i logi czyste

    K&R - napisz sobie funkcję ustalającą kolejność, wywołaj qsort. Ale
    wcześniej oczywiście musisz się nauczyć C.

    C++ - jest coś do tego w Boost. Musi być. Tam, albo w STL.

    Java z GoF - napisz fasadę do abstrakcyjnej kolekcji posortowanych obiektów
    z referencjami do instancji KonkretnyAdres. Te obiekty są posortowane, więc
    nie musisz ich sortować.

    Współczesny teoretyk: poszukaj w Google "stabilne algorytmy sortowania".

    Teoretyk z lat 90-tych: poszukaj w bibliotece "Algorytmy".

    Teoretyk z lat 70-tych: przecież potrafisz zacytować odpowiednią stronę z
    książki Niklausa ?!

    Teoretyk z lat 60-tych: a co to _będzie_ IP? Liczba? To _będziemy_ sortować
    liczby! I tak zapiszemy w RFC.

    Teoretyk, lata 30-te: trzeba tylko znaleźć odpowiednią grupę permutacji.
    Potrzebna są: arkusze papieru, rotory, tasiemka dalekopisowa i ewentualnie
    Turing do pomocy.

    PHP-owiec: http://forum.php.pl/index.php?showtopic=79649

    Student - potrafi wpisać w przeglądarkę
    http://www.google.pl/search?q=sortowanie+ip .

    Mniej zdolny student - potrafi wpisać w przeglądarkę "sortowanie ip".

    Bardziej zdolny student - potrafi wpisać w przeglądarkę "ip sort".

    Użytkownik iPhone: użytkownicy iPhone nie muszą sortować adresów IP.

    Użytkownik Usenet - "a może Panowie znają jakiś cwany algorytm sortowania
    adresów IP?"

    .......

    Na razie tyle, ale gorąco zachęcam do dopisywania. W szczególności zostały
    nam COBOL i PL/1, języki funkcyjne, komputery kwantowe, bazy danych (SQL?),
    CUDA, Agile, układy CMOS i co tylko zechcecie.

    Jest weekend - liczę na waszą pomysłowość!


  • 6. Data: 2012-07-15 11:30:17
    Temat: Re: sortowanie
    Od: "Jordan Szubert" <u...@j...us.to>

    Dnia 14-07-2012 o 17:55:06 identyfikator: 20040501
    <N...@g...pl> napisał(a):

    > a może Panowie znają jakiś cwany algorytm sortowania adresów IP? żeby
    > nie wychodziło coś takiego:
    > 213.186.127.10
    > 213.186.127.11
    > 213.186.127.12
    > 213.186.127.13
    > 213.186.127.14
    > 213.186.127.2
    > 213.186.127.28
    > 213.186.127.3
    > 213.186.127.4
    > 213.186.127.5
    > 213.186.127.6
    > 213.186.127.7
    > 213.186.127.8
    > 213.186.127.9

    a po co cwany, czemu nie oczywiste rozwiązanie?

    Python 3.2.2 (default, Sep 4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)]
    on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from socket import inet_aton
    >>> from pprint import pprint as pp
    >>> pp(ips)
    ['213.186.127.8',
    '213.186.127.3',
    '213.186.127.4',
    '213.186.127.28',
    '213.186.127.7',
    '213.186.127.14',
    '213.186.127.10',
    '213.186.127.13',
    '213.186.127.6',
    '213.186.127.11',
    '213.186.127.2',
    '213.186.127.12',
    '213.186.127.9',
    '213.186.127.5']
    >>> ips.sort(key=inet_aton)
    >>> pp(ips)
    ['213.186.127.2',
    '213.186.127.3',
    '213.186.127.4',
    '213.186.127.5',
    '213.186.127.6',
    '213.186.127.7',
    '213.186.127.8',
    '213.186.127.9',
    '213.186.127.10',
    '213.186.127.11',
    '213.186.127.12',
    '213.186.127.13',
    '213.186.127.14',
    '213.186.127.28']
    >>>

    dla C masz http://linux.die.net/man/3/inet_aton
    dla innych języków też powinna być ta funkcja dostępna

    --
    Jordan Szubert


  • 7. Data: 2012-07-15 15:33:25
    Temat: Re: sortowanie
    Od: "identyfikator: 20040501" <N...@g...pl>

    dla C masz http://linux.die.net/man/3/inet_aton
    dla innych języków też powinna być ta funkcja dostępna

    fajne fajne, ale php


  • 8. Data: 2012-07-15 23:15:44
    Temat: Re: sortowanie
    Od: Maciej Sobczak <s...@g...com>

    W dniu niedziela, 15 lipca 2012 11:05:30 UTC+2 użytkownik slawek napisał:

    > &gt;a może Panowie znają jakiś cwany algorytm sortowania adresów IP? żeby nie
    > &gt;[...]
    >
    > Panienka z biura
    [...]

    Dobre! :-D

    > Na razie tyle, ale gorąco zachęcam do dopisywania.

    Agile/Scrum/XP - piszemy unit test, który wrzuca kilka adresów do nieistniejącej
    funkcji sortującej i sprawdzamy jakimś jedwabistym i koniecznie najnowszym
    frejmłorkiem zastępującym asserty, czy faktycznie posortowało. Uff - unit test
    zrobiony to mamy luz, bo dokumentacji i tak nie trzeba pisać a demo dopiero za
    miesiąc.

    Inżynier CISCO - piszemy skrypt konfiguracyjny ustawiający daną listę adresów jako
    tablicę routingu i pałujemy to w pierwszy z brzegu router, potem każemy mu tą tablicę
    wypisać na konsolę administracyjną.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 9. Data: 2012-07-15 23:35:37
    Temat: Re: sortowanie
    Od: "Jordan Szubert" <u...@j...us.to>

    Dnia 15-07-2012 o 15:33:25 identyfikator: 20040501
    <N...@g...pl> napisał(a):

    > dla C masz http://linux.die.net/man/3/inet_aton
    > dla innych języków też powinna być ta funkcja dostępna
    >
    > fajne fajne, ale php

    https://www.google.com/search?q=php+inet_aton

    --
    Jordan Szubert


  • 10. Data: 2012-07-16 00:21:45
    Temat: Re: sortowanie
    Od: Edek Pienkowski <e...@g...com>

    Dnia Sun, 15 Jul 2012 14:15:44 -0700, Maciej Sobczak napisal:

    > W dniu niedziela, 15 lipca 2012 11:05:30 UTC+2 użytkownik slawek napisał:
    >
    >> &gt;a może Panowie znają jakiś cwany algorytm sortowania adresów IP? żeby nie
    >> &gt;[...]
    >>
    >> Panienka z biura
    > [...]
    >
    > Dobre! :-D
    >
    >> Na razie tyle, ale gorąco zachęcam do dopisywania.

    > Agile/Scrum/XP - piszemy unit test, który wrzuca kilka adresów do
    > nieistniejącej funkcji sortującej i sprawdzamy jakimś jedwabistym i
    > koniecznie najnowszym frejmłorkiem zastępującym asserty, czy faktycznie
    > posortowało. Uff - unit test zrobiony to mamy luz, bo dokumentacji i tak
    > nie trzeba pisać a demo dopiero za miesiąc.
    >
    > Inżynier CISCO - piszemy skrypt konfiguracyjny ustawiający daną listę
    > adresów jako tablicę routingu i pałujemy to w pierwszy z brzegu router,
    > potem każemy mu tą tablicę wypisać na konsolę administracyjną.

    Świerzak pół roku po magisterce - muszę udawać, że jestem zajęty czym innym,
    później na spokojnie rozpracuję temat

    Ekspert - co on mi tym d..ę zawraca!

    Senior - polecam "Wstęp do Algorytmów" autorstwa Starosława Gurowskiego,
    wydanie II, lepsze moim zdaniem od pierwszego wydania z 1999 roku,
    przeczytaj to zrozumiesz

    Pnący Się W Górę - może porozmawiajmy o sortowaniu, przy okazji pomożesz
    mi z moim problemem nad którym aktualnie pracuję, patrz tutaj ten kawałek
    kodu, zobacz co on robi

    Architekt - wiesz co, jestem teraz zajęty, przynieś jutro schemat
    UML na spotkanie poświęcone wirtualizacji w nowym modelu architektury,
    tam tematy sieciowe też będą poruszane

    Junior Architekt - o co wszystkim chodzi z tym IP, powariowali na
    punkcie praw autorskich !?

    Analityk - mógłbyś podać źródło Twoich danych? Bo mi one wyglądają
    na wyssane z palca

    Alien (istota z kosmosu nie żyjąca na ziemi) - odpiszemy na te adresy,
    dziękujemy wam Ziemianie

    Edek

strony : [ 1 ] . 2 . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: