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

Ваш аккаунт

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

Последние темы форума

Показать новые сообщения »

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

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

qsort

[ Оглавление ]
               QSORT
            
            #include <search.h>    требуется только для объявления
                                   функции
            
            void gsort(base,num, width, compare);
            char *base;
            unsigned num, width;
            int (*compare)();
            
               Описание.
            
               Функция qsort выполняет алгоритм быстрой сортировки,  чтобы
         отсортировать  массив  из  num элементов, каждый элемент размером
         width байт. Аргумент base является указателем  на  базу  массива,
         который  нужно  отсортировать.  Функция qsort перезаписывает этот
         массив с отсортированными элементами.
               Аргумент compare является указателем на процедуру,  постав-
         ляемую  пользователем,  которая сравнивает два элемента массива и
         возвращает значение, определяющее их отношение.
               Функция qsort может вызывать  процедуру  compare  один  или
         несколько  раз в процессе сортировки, передавая при каждом вызове
         указатели на два элемента массива.  Процедура  должна  сравнивать
         элементы, а затем возвращать одно из следующих значений:
            
            Значение                   Его смысл
            
            меньше 0           element 1 меньше element 2
                
               0               element 1 равен element 2
                
            больше 0           element 1 больше element 2
            
                
               Возвращаемое значение.
            
               Возвращаемого значения в случае ошибки нет.
               См.также bsearch, lsearch.
            
               Пример:
           
            #include <search.h>
            #include <string.h>
            #include <stdio.h>
            
            int compare ();
            /* должна быть объявлена как функция */
            
            main (argc, argv)
                int argc;
                char **argv;
                {
                .
         
                .
                .
               /*  следующий оператор сортирует аргументы командной строки
         в лексикографическом порядке: */
            
                qsort((char*)argv,argc,sizeof(char*),compare);
                for (i=0; i<argc; ++i)
                  printf("%s\n", argv[i]);
                .
                .
                .
                }
            
            int compare (arg1, arg2)
               char **arg1, **arg2;
            
               {
               return(strcmp(*arg1, *arg2));
               }
            
            

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

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