QSORT

Section: MINTLIB LIBRARY FUNCTIONS (3)
Updated: 3 March 1993
Index Return to Main Contents
 

NAME

qsort - quicker sort  

SYNOPSIS

#include <stdlib.h>

qsort(void *base, size_t total_elems, size_t elem_size,
      int (*compare)(const void *one, const void *two));
 

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.
  - total_elems is the number of elements in
    the table.
  - elem_size is the size, in bytes, of each element
    in the table.
  - compare 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.  

EXAMPLE

The following program sorts a simple array:
    static int intcompare(const void *i, const void *j)
    {
      int *one, *two;

      one = (int *)i;
      two = (int *)j;
      return (*one - *two);
    }

    void main(void)
    {
      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 < 10; i++)
        printf(" %d", a[i]);
      printf("n");
    }
 

SEE ALSO

bsearch(3)  

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. The order in the output of two items which compare as equal is unpredictable.
 

Index

NAME
SYNOPSIS
DESCRIPTION
EXAMPLE
SEE ALSO
NOTES

This document was created by man2html, using the manual pages.
Time: 08:59:17 GMT, February 14, 2025