Как сортировать массивы с помощью qsort() в C

Kak Sortirovat Massivy S Pomos U Qsort V C



Сортировка является фундаментальной операцией в компьютерном программировании и включает в себя упорядочивание набора данных в определенном порядке. Один из способов отсортировать массив элементов в C — использовать сортировка() функция, которая является частью стандартной библиотеки. Эта функция принимает массив, его размер и функцию сравнения в качестве аргументов и по умолчанию сортирует массив в порядке возрастания.

Это руководство иллюстрирует сортировку массивов с помощью сортировка() функция на C, а также помогает понять ее с помощью примеров кода C.

qsort() в C

Стандартная библиотека C облегчает нам сортировка() функция, которая просто используется для сортировки массивов. Это чрезвычайно оптимизированная и быстрая функция, которая может работать с любым массивом данных.







Заголовочный файл с использованием qsort() в C

сортировка() метод определен внутри stdlib.h заголовочный файл, который должен быть определен перед реализацией сортировка() в программе на Си.



#include

Объявление qsort()

Декларация сортировка() функция следующая:



пустота сортировка ( пустота * база , количество_элементов , size_of_element , функция_сравнения )

Параметры функции qsort()

Параметры сортировка() функции:





база: Указатель на первый элемент массива для сортировки.

количество_элементов: Количество элементов в массиве для сортировки.



размер_элемента: Размер в байтах каждого элемента в массиве.

функция_сравнения: Указатель на функцию сравнения, определяющую порядок элементов.

Что такое функция сравнения в qsort()

Функция сравнения принимает два параметра, оба типа const void*, которые указывают на сравниваемые элементы. Функция должна возвращать целое число, меньшее, равное или большее 0, в зависимости от того, должен ли первый элемент быть отсортирован до, в той же позиции или после второго элемента соответственно.

Как работает qsort в C

сортировка() функция работает следующим образом:

Примечание: Здесь мы рассматриваем интервал [] = {5, 2, 8, 3, 1, 9};

1: Изначально функция qsort будет вызываться со следующими параметрами:

сортировка ( обр , 6 , размер ( инт ) , функция_сравнения ) ;

где arr — указатель на массив, 6 — количество элементов в массиве, sizeof(int) — размер каждого элемента в массиве, а compare_function — функция, определяющая порядок сортировки элементов.

2: Функция qsort выбирает опорный элемент. Допустим, он выбирает 3 в качестве опоры.

3: Функция qsort разбивает массив на два подмассива: {2, 1} и {5, 8, 9}. Первый подмассив содержит элементы, меньшие или равные опорной точке, а второй подмассив содержит элементы, превышающие опорную точку.

4: Функция qsort рекурсивно вызывает себя для каждого из подмассивов.

5: Функция qsort выбирает опорные точки для каждого из подмассивов. Допустим, он выбирает 1 и 8 в качестве опорных.

6: Функция qsort разбивает каждый подмассив еще на два подмассива и рекурсивно вызывает себя в каждом из этих подмассивов.

7: Функция qsort объединяет отсортированные подмассивы обратно в один отсортированный массив: {1, 2} и {5, 8, 9} становятся {1, 2, 5, 8, 9}.

8: Возвращается весь отсортированный массив.

Реализация qsort в программировании на C

В следующем коде показана реализация сортировка функция в программировании на Си.

#include

#include

инт сравнивать ( константа пустота * а1 , константа пустота * б1 )

{

возвращаться ( * ( инт * ) а1 - * ( инт * ) б1 ) ;

}

инт основной ( )

{

инт я '=' 0 , на одной '=' 6 ;

инт множество [ ] '=' { 5 , 2 , 8 , 3 , 1 , 9 } ;

сортировка ( множество , на одной , размер ( инт ) , сравнивать ) ;

printf ( «Отсортированные элементы массива с использованием qsort():» ) ;

для ( я '=' 0 ; я < на одной ; я ++ ) {

printf ( '%д' , множество [ я ] ) ; }

возвращаться 0 ;

}

В приведенном выше коде сначала создается функция сравнения с двумя параметрами. а1 и б1 . Затем выполнение начинается с main(). В основном мы инициализируем две целочисленные переменные как i=0 и num=6. Затем мы объявляем массив из шести элементов как {5, 2, 8, 3, 1, 9} . После этого сортировка() имеют три параметра типа массива, параметр num сообщает общее количество элементов массива, размер (целое число) относится к общему размеру массива, а сравнение используется для сравнения элементов массива один за другим. Затем распечатайте отсортированный массив, используя printf() функция в С.

Выход

Заключение

сортировка — мощная функция программирования на C для сортировки массивов любого типа. Он использует алгоритм быстрой сортировки для сортировки элементов в порядке возрастания или убывания на основе функции сравнения. В приведенном выше руководстве показан простой способ реализации qsort в программировании на C с пошаговой работой. сортировка алгоритм.