Jak sortować tablice z QSort w C

Jak sortować tablice z QSort w C
Sortowanie jest fundamentalną działaniem w programowaniu komputerowym i obejmuje zorganizowanie gromadzenia danych w określonej kolejności. Jednym ze sposobów sortowania szeregu elementów w C jest użycie QSort () funkcja, która jest częścią standardowej biblioteki. Ta funkcja przyjmuje tablicę, jej rozmiar i funkcję porównawczą jako argumenty i domyślnie sortuje tablicę w kolejności rosnącej.

Wytyczne te ilustrują sortowanie tablic za pomocą QSort () Funkcja w C, a także pomaga zrozumieć go według przykładowych kodów.

qsort () w c

C standardowa biblioteka ułatwia nas z QSort () funkcja, która jest po prostu używana do sortowania tablic. Jest to wyjątkowo zoptymalizowana i szybka funkcja, która może działać z dowolną tablicą typu danych.

Plik nagłówka za pomocą qsort () w c

QSort () Metoda jest zdefiniowana wewnątrz stdlib.H plik nagłówka, który należy zdefiniować przed wdrożeniem QSort () W programie C.

#włączać

Deklaracja QSort ()

Deklaracja QSort () Funkcja jest następująca:

void qsort (void *baza, liczba_of_elements, size_of_element, porównanie_funtacji)

Parametry funkcji QSort ()

Parametry QSort () Funkcja to:

baza: Wskaźnik do pierwszego elementu tablicy do sortowania.

Number_of_elements: Liczba elementów w tablicy do sortowania.

size_of_element: Rozmiar w bajtach każdego elementu w tablicy.

Porównanie: funkcja: Wskaźnik do funkcji porównawczej, która określa kolejność elementów.

Co to jest funkcja porównawcza w QSort ()

Funkcja porównawcza przyjmuje dwa parametry, oba typu const void*, które wskazują na porównywane elementy. Funkcja powinna zwrócić liczbę całkowitą mniej niż, równa lub większa niż 0, w zależności od tego, czy pierwszy element powinien być sortowany przed, w tej samej pozycji, czy po drugim elemencie.

Jak działa QSort w C

QSort () Funkcja działa w następujący sposób:

Notatka: Tutaj rozważamy int arr [] = 5, 2, 8, 3, 1, 9;

1: Początkowo funkcja QSORT zostanie wywołana z następującymi parametrami:

qSort (ARR, 6, sizeof (int), porównanie_funtion);

gdzie Arr jest wskaźnikiem do tablicy, 6 to liczba elementów w tablicy, sizeof (int) jest rozmiarem każdego elementu w tablicy, a porównanie jest funkcją określającą kolejność sortowanych elementów.

2: Funkcja QSORT wybiera element obrotu. Powiedzmy, że wybiera 3 Jak obrotek.

3: Funkcja QSORT podziela tablicę na dwa podwycięzie: 2, 1 i 5, 8, 9. Pierwsza podarray zawiera elementy, które są mniejsze lub równe obrotowi, a druga podrzędna zawiera elementy większe niż obrotowe.

4: Funkcja QSORT rekurencyjnie wzywa się na każdym z pod-pod-pod-podoch.

5: Funkcja QSORT wybiera protoko. Powiedzmy, że wybiera 1 i 8 jako obrotowe.

6: Funkcja QSORT podziela każdą podarę na dwa kolejne podarraje i rekurencyjnie wzywa się na każdym z tych pod-pod-pod-podlegających.

7: Funkcja QSORT łączy posortowane pod-noce z powrotem w pojedynczej posortowanej tablicy: 1, 2 i 5, 8, 9 stają się 1, 2, 5, 8, 9.

8: Cała sortowana tablica jest zwracana.

Wdrożenie QSORT w programowaniu C

Poniższy kod pokazuje implementację QSORT Funkcja w programowaniu C.

#włączać
#włączać
int Porównaj (const void * a1, const void * b1)

return ( *(int *) a1 - *(int *) b1);

int main ()

int i = 0, num = 6;
int array [] = 5, 2, 8, 3, 1, 9;
qSort (tablica, num, sizeof (int), porównaj);
printf („posortowane elementy tablicy za pomocą QSort () to:”);
dla (i = 0; i < num; i++)
printf („%d”, tablica [i]);
powrót 0;

W powyższym kodzie po pierwsze funkcja porównywania jest wykonana z dwoma parametrami A1 I B1. Następnie wykonanie rozpoczyna się od Main (). W głównej inicjowaniu dwóch zmiennych liczb całkowitych jako i = 0 i num = 6. Następnie deklarujemy tablicę z sześcioma elementami jako 5, 2, 8, 3, 1, 9. Po tym QSort () mają trzy parametry typu tablicy, parametr NUM mówi łączne elementy tablicy, sizeof (int) odnosi się do całkowitego rozmiaru tablicy, a porównanie służy do porównania elementów tablicy jeden po drugim. Następnie wydrukuj posortowaną tablicę za pomocą printf () funkcja w c.

Wyjście

Wniosek

QSORT jest potężną funkcją w programowaniu C do sortowania tablic dowolnego typu. Wykorzystuje algorytm Quicksort do sortowania elementów w kolejności rosnącej lub malejącej na podstawie funkcji porównawczej. Powyższy przewodnik pokazuje łatwy sposób na wdrożenie QSORT w programowaniu C z działaniem krok po kroku QSORT algorytm.