unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

QSORT(3)                   Library Functions Manual                   QSORT(3)



NAME
       qsort - quicker sort

SYNOPSIS
       qsort(base, nel, width, compar)
       char *base;
       int (*compar)();

DESCRIPTION
       qsort() is an implementation of the quicker-sort algorithm.  It sorts a
       table of data in place.

       base points to the element at the base of the table.  nel is the number
       of elements in the table.  width is the size, in bytes, of each element
       in the table.  compar is the name of the comparison function, which  is
       called  with  two  arguments that point to the elements being compared.
       As the function must return an integer less than, equal to, or  greater
       than  zero,  so  must the first argument to be considered be less than,
       equal to, or greater than the second.

NOTES
       The pointer to the base of the table should be of type  pointer-to-ele-
       ment, and cast to type pointer-to-character.

       The  comparison function need not compare every byte, so arbitrary data
       may be contained in the elements in addition to the values  being  com-
       pared.

       The  order  in the output of two items which compare as equal is unpre-
       dictable.

SEE ALSO
       sort(1V), bsearch(3), lsearch(3), string(3)

EXAMPLE
       The following program sorts a simple array:
              static    int intcompare(i,j)
              int *i, *j;
              {
                   return(*i - *j);
              }
              main()
              {
                   int a[10];
                   int i;
                   a[0] = 9;
                   a[1] = 8;
                   a[2] = 7;
                   a[3] = 6;
                   a[4] = 5;
                   a[5] = 4;
                   a[6] = 3;
                   a[7] = 2;
                   a[8] = 1;
                   a[9] = 0;
                   qsort(a,10,sizeof(int),intcompare)
                   for (i=0; i<&lt;10; i++) printf(" %d",a[i]);
                   printf("\n");
              }



                               16 February 1988                       QSORT(3)