![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 6.04.2009 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
Witam!
Czy jest jakaś funckja w php, która umożliwi mi wybranie największej liczby np.: spośrud 5 liczb? czy może musze robić to ręcznie i bardzo długo np.: Kod $a = 12; $b = 3456; $c = 6; $d = 9887; $e = 0; if ($a > $b) { // kod } // i tak dalej Z góry dzięki za pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Taaa, sortowanie, przeciez to bez sensu skoro jest wlasnie max()
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
no to przecież podałem
![]() a to z sortowaniem uznajmy za ciekawostkę ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat Taaa, sortowanie, przeciez to bez sensu skoro jest wlasnie max() Ta sama złożoność obliczeniowa - O(n) ![]() Ten post edytował TomASS 6.04.2009, 18:51:05 -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Ta sama, czy zartujesz?
![]() -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Odpowiedz mi, bardzo proszę, na dwa pytania:
1. jaką złożoność ma sortowanie? 2. jaką złożoność ma max()? -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@TomASS jak jestes w stanie posortowac dane jedną iteracją to ty jestes normalnie gość
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Jestem w stanie posortować liczby całkowite (bo o takich tu mówię), jedną pętlą for...
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no a w tej jednej petli sa kolejne.
No ale moge sie mylic, moze matematyka ruszyla do przodu przez te kilka lat wiec pokaz mi prosze ten kod ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Proszę bardzo:
sortowanie kubełkowe Albo inny pomysł: Lecisz pętlą po całej tablicy i zapamiętujesz ile razy wystąpiła dana liczba. Potem już tylko wystarczy wyświetlić odpowiednią ilość liczb:
-------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Proszę bardzo: sortowanie kubełkowe Cytat Jest on najczęściej stosowany, gdy liczby w zadanym przedziale są rozłożone jednostajnie, ma on wówczas złożoność Θ(n). W przypadku ogólnym pesymistyczna złożoność obliczeniowa tego algorytmu wynosi O(n2). Poza tym nawet w przypadku optymalnym nie jest to tylko jedna iteracja. Wyliczenie max to jest jedna iteracja niezaleznie czy to jest przypadek optymalny czy nie Cytat Albo inny pomysł: Lecisz pętlą po całej tablicy i zapamiętujesz ile razy wystąpiła dana liczba. Potem już tylko wystarczy wyświetlić odpowiednią ilość liczb: ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 9.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Podejrzewam, że teraz wszyscy czytający ten temat próbują rozkminić co takiego TomASS wymyślił, ale ja Wam mogę z całą pewnością oznajmić, iż nasze (a przynajmniej większości) rozumienie sortowania mija się zdecydowanie z jego własnym.
![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Drogi kolego shazarre.
Cytat Podejrzewam, że teraz wszyscy czytający ten temat próbują rozkminić Ja z kolei podejrzewam, że nawet nie zadałeś sobie trudu aby zrozumieć to co napisałem. Nie winię Cię jednak za to - ale nie mierz wszystkich swoją miarą. Cytat co takiego TomASS wymyślił Nie ja to wymyśliłem. Podejrzewam, że wymyślił to twórca wspaniałej książki o algorytmach - Pan Thomas (zbieżność imion?) Cormen. Algorytm "Counting Sort" jest szeroko opisywany np. tutaj (jeśli wolisz czytać po polsku, to proszę bardzo). Kod w C++ masz tutaj. Nie widzę nigdzie zagnieżdżonych pętli. Złożoność obliczeniowa jest O(n) (dobra, niech będzie O(n+k), zmienna nie ma tutaj znaczenia). Natomiast tutaj masz aplet Javy pokazujący jak to działa. Cytat ale ja Wam mogę z całą pewnością oznajmić Widać jaką miałeś pewność - swoje "widzimisie". Cytat nasze (a przynajmniej większości) rozumienie sortowania mija się zdecydowanie z jego własnym Tak - jakie to jest sortowanie rozumiane przez "większość"? Ja np. mogę zgodzić się z takim pojęciem: "Sortowanie – jeden z podstawowych problemów informatyki. Polega na uporządkowaniu zbioru danych względem pewnych cech charakterystycznych każdego elementu tego zbioru. Szczególnym przypadkiem jest sortowanie względem wartości każdego elementu, np. sortowanie liczb, słów itp. Algorytmy sortowania są stosowane w celu uporządkowania danych, umożliwieniu stosowania wydajniejszych algorytmów (np. wyszukiwania) i prezentacji danych w sposób czytelniejszy dla człowieka." I to właśnie robię algorytmem Counting Sort, mało tego - żąda tego (pośrednio) autor wątku - posortowania i wybór ostatniego/pierwszego elementu. Chciałbym poznać Twoje (większości?) rozumienie słowa "sortowanie". Wczytując się w niuanse tego algorytmu, znaleźć można zmienną o wartości największego elementu:
otóż, funkcja max() (jak nospor słusznie zauważył: "Wyliczenie max to jest jedna iteracja niezaleznie czy to jest przypadek optymalny czy nie") również działa w czasie O(n) co nie wpływa w żaden sposób na jakość algorytmu (przypominam, że O(k*n) = O(n), gdzie k jest dowolną, ale skończoną wartością). Aby jeszcze bardziej zobrazować Ci działanie tego algorytmu, pokusiłem się o napisanie go w PHP:
Nie ma żadnych pętli zagnieżdżonych. Złożoność obliczeniowa to O(n) (dla formalistów O(n+k)). Kluczowym momentem jest zliczanie elementów:
o którym pisałem wcześniej, lecz kolega shazarre nie raczył tego zagłębić. odpalając
Także uzyskamy prawidłowy wynik (jak chciał autor postu) w czasie porównywalnym (przy nieskończonej ilości danych w takim samym czasie) co max() czyli O(n) ![]() Ten post edytował TomASS 6.04.2009, 23:18:29 -------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
No ale generalnie dyskusja zaczęła się od tego żeby udowodnić że sortowanie da się zrobić JEDNĄ iteracją.
Cytat TomASSJ: estem w stanie posortować liczby całkowite (bo o takich tu mówię), jedną pętlą for... Jak widać nie jesteś w stanie ![]() Poza tym sortowanie przez zliczanie to nie jest szczyt szczytów jeśli chodzi o przydatność algorytmu bo niestety jak każdy z algorytmów sortowania ten też ma swoje wady. Faktycznie wydajny jest, ale tylko w określonych sytuacjach. -------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze:
Cytat Ta sama, czy zartujesz? Sytuacja zaczęła się od tego, że twierdziłem, że sortowanie liczb całkowitych ma taką samą złożoność obliczeniową jak max() - co jak widać udowodniłem i nie żartowałem ![]() Po drugie: Cytat 1. @TomASS jak jestes w stanie posortowac dane jedną iteracją to ty jestes normalnie gość 2. no a w tej jednej petli sa kolejne. Umiem jedną iteracją. Sortowanie właściwe to jedna pętla - bez żadnych zgłębień kolejnych pętli - jest to robione tak jak max w JEDNEJ itereacji. Reszta forów jest tylko do "znośnej" prezentacji wyników. Po za tym, okej, nawet jakby było 100 forów pod sobą to i tak złożoność obliczeniowa byłaby O(100n) czyli O(n). Ale faktycznie, zwrot że "tylko" jedną mogę posortować nie był przeze mnie idealnie trafiony. Po trzecie: Cytat Poza tym sortowanie przez zliczanie to nie jest szczyt szczytów jeśli chodzi o przydatność algorytmu bo niestety jak każdy z algorytmów sortowania ten też ma swoje wady. Dla liczb całkowitych ma najlepszą złożoność obliczeniową i jest szczytem szyczytów - znasz algorytm sortowania o lepszej złożoności (nawet z tymi wadami - o których wspomniałem)? Po czwarte: Cytat Faktycznie wydajny jest, ale tylko w określonych sytuacjach. To zaznaczyłem na samym początku, że chodzi o liczby całkowite, dodatkowo zmienia klucze i jest niestabilny - ale w tym przykładzie nie przeszkadza to niczemu. Po piąte: Dzięki za odpowiedzieć - jak widać shazarre podczas gdy nie mógł "rozkminić" stwierdził, że nikt z Was nie doczyta tego, ani nie zrozumie (albo zrozumie na opak) - na szczęście się mylił, co krowal udowodnił ![]() Ten post edytował TomASS 7.04.2009, 07:31:56 -------------------- |
|
|
![]()
Post
#17
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
@TomASS:
Cytat To zaznaczyłem na samym początku, że chodzi o liczby całkowite, dodatkowo zmienia klucze i jest niestabilny - ale w tym przykładzie nie przeszkadza to niczemu. No wlasnie nie na poczatku... Cytat Ta sama złożoność obliczeniowa - O(n) -> wprowadzasz zamieszanie - nie informujesz ze myslales o sortowaniu tylko liczb calkowitychCytat Odpowiedz mi, bardzo proszę, na dwa pytania: 1. jaką złożoność ma sortowanie? 2. jaką złożoność ma max()? 1. a ktory algorytm? ![]() zalezy od algorytmu i mozliwosci jego zastosowania od O(n), O(nlog(n)), O(n^2) i w gore 2. O(n), ale i tak bedzie w praktyce szybsze niz jakiekolwiek sortowanie, i mniej pamieci zuzyje niz kubelkowe Takze, twoje wypowiedzi byly niejasne, niepelne i sie czepiasz ze my sie ich czepiamy. edit: pozatym Counting Sort: Cytat A summary of the algorithm is as follows. - LOL, rzeczywiscie przydatny algorytm do tego konkretnego problemu.
1. Find the highest and lowest elements of the set Ten post edytował dr_bonzo 7.04.2009, 08:09:19 -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat wprowadzasz zamieszanie - nie informujesz ze myslales o sortowaniu tylko liczb calkowitych Jasno napisałem już w pierwszym/drugim poście: Cytat liczby całkowite (bo o takich tu mówię) Cytat 1. a ktory algorytm? Zazwyczaj pyta się o minimalną złożoność - nie o maksymalną. TomASS (pierwszy post): Ta sama złożoność obliczeniowa - O(n) dr_bonzo: Ta sama, czy zartujesz? TomASS: 1. jaką złożoność ma sortowanie? 2. jaką złożoność ma max()? Dalej twierdzę, że dla liczb całkowitych mają takie same złożoności. Cytat O(n), O(nlog(n)), O(n^2) nawet O(n^n) albo nawet O(!n^!n) i co z tego? Minimalna dla liczb całkowitych to taka sama jak dla max(). Cytat O(n), ale i tak bedzie w praktyce szybsze niz jakiekolwiek sortowanie, i mniej pamieci zuzyje niz kubelkowe Nie mówię o praktyce tylko o złożoności. Cytat Takze, twoje wypowiedzi byly niejasne Bo nie doczytałeś. Mam całą teorię wyłożyć? Cytat niepelne Książkę musiałbym napisać. Dałem linki, powiedziałem jak metody się nazywają - czego chcieć więcej? Później jak krowie na rowie musiałem dać przykłady w różnych językach, aplety itd. aby niektórzy zrozumieli. Cytat i sie czepiasz ze my sie ich czepiamy. Czepiam się, jak ktoś nie doczyta/nie zrozumie i się czepia ![]() Cytat A summary of the algorithm is as follows. 1. Find the highest and lowest elements of the set I co z tego, jaki to ma wpływ na złożoność - żaden - nadal jest O(n) i jest robione sortowanie w jednej iteracji. Cytat - LOL, rzeczywiscie przydatny algorytm do tego konkretnego problemu. Okej - niech będzie tak jak pisałem O(4n+O(max())+k). Ten post edytował TomASS 7.04.2009, 08:27:13 -------------------- |
|
|
![]()
Post
#19
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@TomASS w funkcji countSortTomass() korzystasz z max():
$k = max($arrToSort); no, i tyle w temacie z mojej strony ![]() Napisales mi ze jestes w stanie posortowac jedną iteracją a nie jestes. na dodatek by posortowac uzywasz funkcji, co do której pisales ze jestes w stanie zrobic tak samo szybko jak ona ![]() Podsumowując temat: do wyliczenia wartosci maksymalnej uzywa sie algorytmu do wyliczenia wartosci maksymalnej a nie sortowania ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat @TomASS w funkcji countSortTomass() korzystasz z max(): $k = max($arrToSort); Się pytam - i co z tego? Tak zgadza się, coś co używa max() musi być wolniejsze niż samo max() - to oczywiste, ale może mieć tą samą złożoność obliczeniową. Cytat a to z sortowaniem uznajmy za ciekawostkę i w kategorii ciekawostki to traktuję Cytat do wyliczenia wartosci maksymalnej uzywa sie algorytmu do wyliczenia wartosci maksymalnej a nie sortowania oczywiście, że do wartości maksymalnej służy funkcja max(), nigdzie nie twierdziłem inaczej. Cytat o do której pisales ze jestes w stanie zrobic tak samo szybko jak ona Nie pisałem, że tak samo szybko, tylko mają taką samą złożoność (jest różnica pomiędzy szybkością a złożonością) Cytat Napisales mi ze jestes w stanie posortowac jedną iteracją a nie jestes Jedną iteracją miałem na myśli, bez pętli zagnieżdżonych, Ty zresztą też: Cytat no a w tej jednej petli sa kolejne. i nie ma pętli w pętli. A jesteś pewien, że w max() nie ma kilku pętli pod sobą (dla różnych argumentów)? podsumowując: Cytat do wyliczenia wartosci maksymalnej uzywa sie algorytmu do wyliczenia wartosci maksymalnej a nie sortowania a do tego (cytat z mojego pierwszego postu) sortowanie liczb całkowitych i max() to: Cytat Ta sama złożoność obliczeniowa - O(n)
Ten post edytował TomASS 7.04.2009, 08:59:09 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 07:22 |