BSD 4_3_Reno release
[unix-history] / usr / src / lib / libc / stdlib / qsort.3
index 7f6b0ab..1f35ae8 100644 (file)
@@ -1,33 +1,66 @@
-.\" Copyright (c) 1980 Regents of the University of California.
-.\" All rights reserved.  The Berkeley software License Agreement
-.\" specifies the terms and conditions for redistribution.
+.\" Copyright (c) 1990 The Regents of the University of California.
+.\" All rights reserved.
 .\"
 .\"
-.\"    @(#)qsort.3     4.1 (Berkeley) %G%
+.\" Redistribution and use in source and binary forms are permitted
+.\" provided that: (1) source distributions retain this entire copyright
+.\" notice and comment, and (2) distributions including binaries display
+.\" the following acknowledgement:  ``This product includes software
+.\" developed by the University of California, Berkeley and its contributors''
+.\" in the documentation or other materials provided with the distribution
+.\" and in all advertising materials mentioning features or use of this
+.\" software. Neither the name of the University nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 .\"
 .\"
-.TH QSORT 3 
+.\"    @(#)qsort.3     6.3 (Berkeley) 5/16/90
+.\"
+.TH QSORT 3  "May 16, 1990"
 .UC 4
 .SH NAME
 qsort \- quicker sort
 .SH SYNOPSIS
 .nf
 .UC 4
 .SH NAME
 qsort \- quicker sort
 .SH SYNOPSIS
 .nf
-.B qsort(base, nel, width, compar)
-.B char *base;
-.B int (*compar)();
+.ft B
+#include <stdlib.h>
+
+void
+qsort(void *base, size_t nmemb, size_t size,
+int (*compar)(const void *, const void *));
+.ft R
 .fi
 .SH DESCRIPTION
 .I Qsort
 .fi
 .SH DESCRIPTION
 .I Qsort
-is an implementation
-of the quicker-sort algorithm.
-The first argument is a pointer to the base of the data;
-the second is the number of elements;
-the third is the width of an element
-in bytes;
-the last is the name of the comparison routine
-to be called with two arguments which are pointers
-to the elements being compared.
-The routine must return
-an integer less than, equal to, or greater than 0
-according as the first argument is to be considered
+is an implementation of C.A.R. Hoare's ``quicksort'' algorithm.
+.PP
+The
+.I qsort 
+function sorts an array of
+.I nmemb
+objects, the initial member of which is pointed to by
+.IR base .
+The size of each object is specified by
+.IR size .
+.PP
+The contents of the array are sorted in ascending order according to
+a comparison function pointed to by
+.IR compar ,
+which is called with two arguments that point to the objects being
+compared.
+.PP
+The comparison function must return an integer less than, equal to, or
+greater than zero if the first argument is considered to be respectively
 less than, equal to, or greater than the second.
 less than, equal to, or greater than the second.
+.PP
+If two members compare as equal, their order in the sorted array is
+undefined.
 .SH "SEE ALSO"
 sort(1)
 .SH "SEE ALSO"
 sort(1)
+.SH STANDARDS
+.B Qsort
+conforms to ANSI X3.159-1989 (``ANSI C'').
+.SH BUGS
+The comparison routine may not itself call
+.IR qsort (3).