Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

qsort

qsort


Функция            Сортирует данные,   применяя   быстрый    алгоритм
                   сортировки.

Синтаксис          #include<stdlib.h>
                   void qsort(void *base, size_t nelem, size_t width,
                             int(*fcmp)(const void *, const void *));

Файл, содержащий   stdlib.h
прототип


Описание           Функция qsort     применяет    алгоритм    быстрой
                   сортировки  "средний  из  трех".   Функция   qsort
                   сортирует  содержимое  таблицы  постоянно  вызывая
                   функцию сравнения,  определяемой  пользователем  и
                   адресуемой с помощью указателя fcmp.

                   - base адресует базу (нулевой элемент) сортируемой
                     таблицы.

                   - nelem - число элементов таблицы;

                   - width - размер каждого элемента таблицы в бай-
                     тах.

                   Функция *fcmp - функция сравнения -  получает  два
                   аргумента  elem1  и  elem2,  которые  представляют
                   собой два указателя на 2 элемента таблицы. Функция
                   сравнения   *fcmp   сравнивает   между  собой  два
                   адресуемых элемента таблицы (*elem1  и  *elem2)  и
                   возвращает  в  зависимости от результата сравнения
                   целое число.

                   Если элементы:        *fcmp возвращает:
                   --------------------------------------------------
                   *elem1<*elem2          целое <0
                   *elem1==*elem2         0
                   *elem1>elem2           целое >0
                   --------------------------------------------------

                   При сравнении  символ "меньше,  чем" (<) означает,
                   что  левый  элемент  в  конце  сортировки   должен
                   оказаться  перед  правым  аргументом.  Аналогично,
                   символ "больше,  чем" (>) означает,  что  в  конце
                   сортировки  левый  элемент  должен оказаться после
                   правого.

Возвращаемое       Нет.
значение

Переносимость      Функция поддерживается на системах UNIX и стандар-
                   том ANSI C.

Смотрите также     bsearch, lsearch.

Пример:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int sort_function(const void *a,const void *b);

char list[5][4] = {"cat", "car", "cab", "cap", "can"};

int main(void)
{
int x;
qsort((void *)&list, 5, sizeof(list[0]), sort_function);
for(x=0; x<5, x++)
    printf("%s\n",list[x]);
}

int sort_function(const void *a,const void *b)
{
   return(strcmp(a,b));
}


Вывод:
cab
can
cap
car
cat

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог