Jump to content
assignment_ind Existing user? Sign In

Sign In



person_add Sign Up
Go-Code.pl - Support SourceMod i Pluginy CS:GO

Leaderboard


Popular Content

Showing content with the highest reputation on 01/21/2019 in all areas

  1. 3 points
    zrobiłeś to najgorzej jak można było, po za tym odrazu trzeba było wstawić kod ? nie jest to najlespze rozwiazanie, ale sproboj tego (nie testowane): public void UpdateMenu() { if (!(active && g_chicken)) { return; } ArrayList sorted = new ArrayList(2); Menu menu = new Menu(EmptyHandler); menu.SetTitle("ADEPT -> Chicken Hunt"); menu.ExitButton = false; for (int i = 1; i < sizeof(KilledChicken); ++i) { if (IsValidClient(i) && GetClientTeam(i) == CS_TEAM_TT) { int index = sorted.Push(KilledChicken[i]); sorted.Set(index, i, 1); } } SortADTArray(sorted, Sort_Descending, Sort_Integer); for (int i = 0; i < sorted.Length; ++i) { char buffer[65]; Format(buffer, sizeof(buffer), "-> %N zabił %d kurczaków", sorted.Get(i, 1), sorted.Get(i, 0)); menu.AddItem("", buffer, ITEMDRAW_DISABLED); } for (int i = 1; i < MaxClients; ++i) { if (IsValidClient(i) && GetClientTeam(i) == CS_TEAM_TT) { menu.Display(i, 20); } } }
  2. 3 points
    https://sm.alliedmods.net/new-api/sorting/SortIntegers to algorytm quick sort ( https://github.com/alliedmodders/sourcemod/blob/master/core/logic/smn_sorting.cpp#L119 ), będzie on wydajniejszy niż ręcznie napisany insert sort zaproponowany przez @mastah7991 ze względu na to że jest zaimplementowany w sourcemodzie, a nie obliczany na maszynie virtualnej (source)pawna. Złożoność czasowa dla insert sort wynosi n^2 natomiast dla quick nlog(n) oraz pesymistyczne n^2, czyli w najgorszym wypadku będzie tak szybkie jak inseration sort. Dla tablicy 64 elementowej: 64^2 = 4096 64 * log(64) = ~180
  3. 1 point
    Po użyciu SortIntegers co jakiś czas ucina 1 zabójstwo, mianowicie plugin nalicza +1 punkt po sortowaniu raz usuwa raz nie usuwa Kod na którym tak się dzieje. Może ja coś źle robię?
  4. 1 point
    Nie napisałem tutaj że dla złożoności czasowej istnieje jeszcze coś takiego jak stała przez która mnożymy, jak widać na zdjęciu ta stała jest mniejsza dla inserta: Ale maszyna vm mocno zwiększa tą stałą, więc natywny quick sort zdecydowanie szybciej będzie działał nawet dla mniejszych przypadków. W sumie może zrobie testy pod wieczór, zobaczymy jak to w praktyce wypada ? p.s. Trzeba pamiętać że pisząc samemu, zwiększamy szanse na błąd. A sourcemod korzysta (prawdopodobnie, na to wskazuje nazwa funkcji qsort) z quick sorta zaimplementowanego w biblioteke standardową języka C, który jest napewnno zoptymalizowany. p.s. 2 Dla tych co nie wiedzą 1E-07 s = 1*10^-7 s = 0,0000001 s = 0,0001 ms = 0,1 μs p.s. 3 Szacun za mashe, dobra bajka ?
  5. 1 point
    Quicksorta często się "ulepsza" poprzez sortowanie małej tablicy poprzez sortowanie przez wstawianie. Quicksort jest fajny dla dużych przypadków bo prawdopodobieństwo wystąpienia uporządkowanej tablicy maleje. ( Można to policzyć np z wzoru na liczbę catalana). Tutaj wydajniejszy może być nawet ten z większą złożonością. Jedyne argumentem jaki przemawia za quicksortem jest to że jest wbudowany ?
  6. 1 point
    Ja bym tu wybrał https://pl.m.wikipedia.org/wiki/Sortowanie_przez_wstawianie
This leaderboard is set to Warsaw/GMT+01:00

O NAS Jesteśmy społecznością łączącą ludzi, którzy dzielą pasję poznawania CS:GO od strony programistycznej. Posiadamy duże zaplecze merytoryczne i zawsze cieszymy się, gdy dołączają do nas osoby gotowe do nauki. Gwarantujemy, że z odrobiną wytrwałości i otwartym umysłem bardzo szybko napiszesz swój pierwszy plugin. Zapraszamy! 🙂
Szablon wykonany z dużą ilością przez cyberpixelz / Mesharsky / Sitefuture
Forum dumnie napędzane przez: Invision Power Services, Inc.
×
×
  • Create New...