Это руководство иллюстрирует сортировку массивов с помощью сортировка() функция на 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 с пошаговой работой. сортировка алгоритм.