Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Dokumentacja AMX Mod X v. 11.5 Uzupełnionych funkcji: Sortowanie: Według modułów | Alfabetycznie
Szukaj funkcji:

3rdParty
Core
Cstrike
CSX
DoDX
Engine
ESF
Fakemeta
Fun
fun
GeoIP
HamSandwich
JSON
NS
nVault
REAPI
Regex
Sockets
Sql
SQLx
dbi
TFCX
TSFUN
TSX
tsx

SortCustom1D

Dodane 04.05.2010 16:47 przez: R3X
#
  


Opis

Sortuje tablicę liczb całkowitych. Wykorzystuje algorytm qsort (szybkiego sortowania).
Funkcja pozwala na zdefiniowanie procedury porównującej elementy.



Składnia

SortCustom1D(array[], array_size, const comparefunc[], data[], data_size=0)

Typ

Natywny

Notatki

  • array - tablica do posortowania, po wywołaniu funkcji zapisywany jest w niej wynik.
  • array_size - ilość elementów w tablicy.
  • comparefunc - nazwa publiczne funkcji, która będzie decydować o kolejności elementów.
  • data - nasze dane przydatne podczas porównywania elementów.
  • data_size - wielkość tablicy naszych danych.

Funkcja porównująca ma mieć postać:

public MySortFunc(elem1, elem2, const array[], const data[], data_size)

gdzie:

  • elem1 - pierwszy element do porównania.
  • elem2 - drugi element do porównania.
  • array - pomniejsza tablica (powstała przy podziale qsort).
  • data - nasze dane.
  • data_size - wielkość tablicy z naszymi danymi.

O kolejności decyduje wartość zwrócona przez funkcję dla danych elementów:

  • -1 - elem1 idzie przed elem2
  • 0 - elem1 i elem2 są równe
  • 1 - elem1 idzie za elem2


Przykład

public plugin_init(){
	new myArray[] = { 3,8,5,1};
	new len = 4; // lub new len = sizeof(myArray);
	
	SortCustom1D(myArray, len, "porownaj");
	
	for(new i=0;
		log_amx("%d", myArray[i]);
	}
}
/*
 * Sortowanie rosnące
 *
 * Nie używamy własnych danych, więc data[] i data_size nie są potrzebne
 * podobnie jak array, więc lista parametrów skróciła się do 2
 */
public porownaj(elem1, elem2){
	if(elem1 == elem2) //gdy równe
		return 0;
	else if(elem1 > elem2) //gdy elem1 jest większy niech idzie za elem2
		return 1;
	return -1; //elem1 < elem2, więc elem1 idzie przed elem2
}


/*

Konsola

L 05/04/2010 - 17:37:25: [sort.amxx] 1
L 05/04/2010 - 17:37:25: [sort.amxx] 3
L 05/04/2010 - 17:37:25: [sort.amxx] 5
L 05/04/2010 - 17:37:25: [sort.amxx] 8

*/

Edytowane 19.10.2013 16:26 przez:
  




Zakaz używania, kopiowania i innego wykorzystywania treści witryny oraz innych materiałów w niej zawartych bez zgody autorów. Wszelkie prawa zastrzeżone. © 2009-2024