Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C stdlib qsort() Function

❮ C stdlib Library


Example

Sort an array:

// Comparing function:
// Returns a positive number if a is greater than b
// Returns a negative number if a is less than b
// Returns 0 if a is equal to b
int compare(const void *a, const void *b) {
  int *valA = a;
  int *valB = b;
  return *valA - *valB;
}

int main() {
  // Create an array
  int myArray[] = {20, 32, 5, 2, 24, 15};
  int size = sizeof(myArray) / sizeof(myArray[0]);

  // Sort the values in the array
  qsort (myArray, size, sizeof(myArray[0]), compare);

  // Display the values of the array
  for(int i = 0; i < size; i++) {
    printf("%d ", myArray[i]);
  }

  return 0;
}
Try it Yourself »

Definition and Usage

The qsort() function sorts the elements in an array from least to greatest.

The qsort() function is defined in the <stdlib.h> header file.


Syntax

qsort(void * arr, size_t amount, size_t size, compare);

The size_t data type is a non-negative integer.

Parameter Values

Parameter Description
arr Required. Specifies the array to be sorted.
amount Required. Specifies the number of elements in the array.
size Required. Specifies the size of an element in the array measured in bytes.
compare Required. Specifies a function used to compare pairs of elements in the array to determine which one is greater.
The function should have the structure int myFunction(const void * a, const void * b) where the parameters a and b are pointers to elements in the array being compared.
The function should return a positive number if a is greater than b, a negative number if a is less than b and zero if a and b are equal.

❮ C stdlib Library

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.