MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Standard C Library Functions                            qsort(3C)



NAME
     qsort - quick sort

SYNOPSIS
     #include 

     void qsort(void *base, sizet nel, sizet width,
          int (*compar)(const void *, const void *));


DESCRIPTION
     The qsort() function is an implementation of the  quick-sort
     algorithm.  It  sorts a table of data in place. The contents
     of the table are sorted in ascending order according to  the
     user-supplied comparison function.


     The base argument points to the element at the base  of  the
     table.   The  nel  argument is the number of elements in the
     table.  The width argument specifies the size of  each  ele-
     ment  in bytes.  The compar argument is the name of the com-
     parison function, which is called with  two  arguments  that
     point to the elements being compared.


     The function must return an integer less than, equal to,  or
     greater than zero to indicate if the first argument is to be
     considered less than, equal to, or greater than  the  second
     argument.


     The contents of the table  are  sorted  in  ascending  order
     according to the user supplied comparison function.

USAGE
     The qsort() function  safely  allows  concurrent  access  by
     multiple  threads to disjoint data, such as overlapping sub-
     trees or tables.

EXAMPLES
     Example 1 Program sorts.


     The following program sorts a simple array:


       #include 
       #include 

       static int
       intcompare(const void *p1, const void *p2)
       {



SunOS 5.11           Last change: 6 Dec 2004                    1






Standard C Library Functions                            qsort(3C)



           int i = *((int *)p1);
           int j = *((int *)p2);

           if (i > j)
               return (1);
           if (i < j)
               return (-1);
           return (0);
       }

       int
       main()
       {
           int i;
           int a[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
           sizet nelems = sizeof (a) / sizeof (int);

           qsort((void *)a, nelems, sizeof (int), intcompare);

           for (i = 0; i < nelems; i]) {
               (void) printf("%d ", a[i]);
           }

           (void) printf("\n");
           return (0);
       }


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Standard                    
    
     MT-Level                     MT-Safe                     
    


SEE ALSO
     sort(1),  bsearch(3C),   lsearch(3C),   string(3C),   attri-
     butes(5), standards(5)

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




SunOS 5.11           Last change: 6 Dec 2004                    2






Standard C Library Functions                            qsort(3C)



     The relative order in the output of two items  that  compare
     as equal is unpredictable.





















































SunOS 5.11           Last change: 6 Dec 2004                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™