Blog (107)
Komentarze (2.3k)
Recenzje (0)
@webnullProste sortowanie tablic według wielu kolumn metodą priorytetów

Proste sortowanie tablic według wielu kolumn metodą priorytetów

09.10.2011 15:08

Tablice w programowaniu są nośnikiem danych zdołającym przechować wszelkiego typu dane w jednym wymiarze lub w wielu wymiarach.

Metoda sortowania według priorytetu pozwala tylko i wyłącznie na sortowanie już wcześniej znanych elementów i o to właśnie nam chodzi.

W przykładzie utworzymy sobie tabelkę z listą dostępnych napisów filmowych.

396248

Etap pierwszy

Skupimy się na sortowaniu tabelki według języka oraz serwisu hostującego napisy. Najważniejszy będzie dla nas język ponieważ możemy oglądać film z niezsynchronizowanymi napisami mając dostępną funkcję dopasowywania napisów "w locie" (SMPlayer). Serwis hostujący będzie sprawą drugorzędną ponieważ jedne dopasowywują napisy do filmów po treści (algorytm skrótu) a drugie po prostu po nazwach gdzie jak można się domyślić te pierwsze są bardziej trafne.

Nadajemy elementom języka priorytet

Język: pl - 1 en - 2 es - 3

Ten sam krok należy powtórzyć w przypadku drugiej kolumny - "serwis"

Serwis: napiprojekt.pl - 1 opensubtitles.org - 2

Ustalamy która kolumna ma mieć większe znaczenie


1. Język
2. Serwis

Tak więc już wiemy, że język jest najważniejszy - zatem na liście priorytetów musi mieć on największe znaczenie.

| Język | Serwis | Priorytet | "pl" + "napiprojekt.pl" = (1*1) + (1*2) = "12" "pl" + "opensubtitles.org" = (1*1) + (2*2) = "14" "en" + "opensubtitles.org" = (2*1) + (2*2) = "24" "es" + "opensubtitles.org" = (3*1) + (2*2) = "34"

Po obliczeniu priorytetów i zamienieniu ich z ciągu znaków w typ liczbowy należy uruchomić zwykłą funkcję sortującą według kolumny priorytetu.

396260

Algorytm wymyślony na kolanie, na pewno wiele osób go znało przede mną. Zapewne posiada wiele błędów które możecie wypisywać w komentarzach. Jednak poprawiać artykułu nie będę - stwórzcie sobie forka ;-)

Licencja: Creative Commons z uznaniem autorstwa na tych samych warunkach. Można dowolnie rozprowadzać, modyfikować, cytować i wyśmiewać się z z tekstu, zezwolenie na użycie komercyjne i niekomercyjne.

Wybrane dla Ciebie
Komentarze (22)