Searching and sorting arrays in C / C++
In the previous tutorial, we learned about using arrays
in C / C++. In this tutorial, we will learn how to searching and sorting arrays
in C / C++.
These are two very important operations when working with arrays
in C / C++. So, let's find out carefully.
So, how to search and sort arrays
in C / C++? Let's get started !!!
Searching and sorting arrays in C / C++
array
is how we determine if that element exists in the array
. If it exists, return the position it is in the array
.Example: Suppose we have array
number[] = {1, 2, 3, 4, 5}, now look for element x = 3 whether exists in array
or not.
Output: Returns the element x = 3 that exists in the array
and it is at position 2.
array
is when we change the position of the elements so that their values are ascending or descending.Example: Let's say we have array
number[] = {1, 5, 2, 7, 4}. Now do an ascending array
sort.
Output: number[] = {1, 2, 4, 5, 7}.
Searching for an element in an array C / C++
To search for an element x in an array
, we traverse the elements in the array
and compare them with the value x. If there exists an element equal to the value x, then conclude x exists in the array
.
For example: Searching for an element in an array
C / C++
C++ programming:
#include <iostream> using namespace std; void show_array(int array[], int length){ for(short i = 0; i < length; i++) cout << array[i] <<' '; cout << endl; } void find_element_index(const int* array, size_t size, int x){ int result[100], count = 0; for (size_t i = 0; i < size - 1; ++i) { if (array[i] == x) { result[count] = i; ++count; } } cout << "Element "<< x <<" appear in position: "; show_array(result, count); } int main() { int n, x; do{ cout<<"Enter the size of the array: "; cin>>n; if(n <= 0) cout<<"Please enter the size of the array greater than 0 !!!\n"; }while(n <= 0); int arr[n]; for(int i = 0; i <= n - 1; i++){ cout<<"Enter the element "<<"[" <<i<<"]: "; cin>>arr[i]; } cout<<"Elements in array is: "; for(int i = 0; i <= n - 1; i++){ cout<<arr[i]<<" "; } cout<<"\nEnter the search element: "; cin>>x; find_element_index(arr,n,x); cout<<"\n-------------------------------\n"; cout<<"This program is posted at learnnc.com"; return 0; }
C programming:
#include <stdio.h> #include <stdbool.h> void show_array(int array[], int length){ for(short i = 0; i < length; i++) printf("%d ",array[i]); printf("\n"); } void find_element_index(const int* array, size_t size, int x){ int result[100], count = 0; for (size_t i = 0; i < size - 1; ++i) { if (array[i] == x) { result[count] = i; ++count; } } printf("Element %d appear in position: ",x); show_array(result, count); } int main(void) { int n, x; do{ printf("Enter the size of the array: "); scanf("%d", &n); if(n <= 0) printf("Please enter the size of the array greater than 0 !!!\n"); }while(n <= 0); int arr[n]; for(int i = 0; i <= n - 1; i++){ printf("Enter the element [%d]: ",i); scanf("%d", &arr[i]); } printf("Elements in array is: "); for(int i = 0; i <= n - 1; i++){ printf("%d ",arr[i]); } printf("\nEnter the search element: "); scanf("%d", &x);; find_element_index(arr,n,x); printf("\n-------------------------------\n"); printf("This program is posted at learnnc.com"); return 0; }
Output:
Sorting arrays in C / C++
When sorting an array
, we have two ways to sort:
- Sort in ascending order.
- Sort in descending order.
Now we will learn each sort with the help of examples.
Example: Sort in ascending order.
C++ programming:
#include <iostream> using namespace std; void sort_numbers_ascending(int number[], int count) { int temp, i, j, k; for (j = 0; j < count; ++j) { for (k = j + 1; k < count; ++k) { if (number[j] > number[k]) { temp = number[j]; number[j] = number[k]; number[k] = temp; } } } cout<<"\nArray after sorting ascending: "; for (i = 0; i < count; ++i) cout<< number[i]<< " "; } int main() { int n; do{ cout<<"Enter the size of the array: "; cin>>n; if(n <= 0) cout<<"Please enter the size of the array greater than 0 !!!\n"; }while(n <= 0); int arr[n]; for(int i = 0; i <= n - 1; i++){ cout<<"Enter the element "<<"[" <<i<<"]: "; cin>>arr[i]; } cout<<"Elements in array is: "; for(int i = 0; i <= n - 1; i++){ cout<<arr[i]<<" "; } sort_numbers_ascending(arr, n); cout<<"\n-------------------------------\n"; cout<<"This program is posted at learnnc.com"; return 0; }
C programming:
#include <stdio.h> #include <stdbool.h> void sort_numbers_ascending(int number[], int count) { int temp, i, j, k; for (j = 0; j < count; ++j) { for (k = j + 1; k < count; ++k) { if (number[j] > number[k]) { temp = number[j]; number[j] = number[k]; number[k] = temp; } } } printf("\nArray after sorting ascending: "); for (i = 0; i < count; ++i) printf("%d ", number[i]); } int main(void) { int n; do{ printf("Enter the size of the array: "); scanf("%d", &n); if(n <= 0) printf("Please enter the size of the array greater than 0 !!!\n"); }while(n <= 0); int arr[n]; for(int i = 0; i <= n - 1; i++){ printf("Enter the element [%d]: ",i); scanf("%d", &arr[i]); } printf("Elements in array is: "); for(int i = 0; i <= n - 1; i++){ printf("%d ",arr[i]); } sort_numbers_ascending(arr, n); printf("\n-------------------------------\n"); printf("This program is posted at learnnc.com"); return 0; }
Output:
Example: Sort in descending order.
C++ programming:
#include <iostream> using namespace std; void sort_numbers_descending(int number[], int count) { int temp, i, j, k; for (j = 0; j < count; ++j) { for (k = j + 1; k < count; ++k) { if (number[j] < number[k]) { temp = number[j]; number[j] = number[k]; number[k] = temp; } } } cout<<"\nArray after sorting descending: "; for (i = 0; i < count; ++i) cout<< number[i]<< " "; } int main() { int n; do{ cout<<"Enter the size of the array: "; cin>>n; if(n <= 0) cout<<"Please enter the size of the array greater than 0 !!!\n"; }while(n <= 0); int arr[n]; for(int i = 0; i <= n - 1; i++){ cout<<"Enter the element "<<"[" <<i<<"]: "; cin>>arr[i]; } cout<<"Elements in array is: "; for(int i = 0; i <= n - 1; i++){ cout<<arr[i]<<" "; } sort_numbers_descending(arr, n); cout<<"\n-------------------------------\n"; cout<<"This program is posted at learnnc.com"; return 0; }
C programming:
#include <stdio.h> #include <stdbool.h> void sort_numbers_descending(int number[], int count) { int temp, i, j, k; for (j = 0; j < count; ++j) { for (k = j + 1; k < count; ++k) { if (number[j] < number[k]) { temp = number[j]; number[j] = number[k]; number[k] = temp; } } } printf("\nArray after sorting descending: "); for (i = 0; i < count; ++i) printf("%d ", number[i]); } int main(void) { int n; do{ printf("Enter the size of the array: "); scanf("%d", &n); if(n <= 0) printf("Please enter the size of the array greater than 0 !!!\n"); }while(n <= 0); int arr[n]; for(int i = 0; i <= n - 1; i++){ printf("Enter the element [%d]: ",i); scanf("%d", &arr[i]); } printf("Elements in array is: "); for(int i = 0; i <= n - 1; i++){ printf("%d ",arr[i]); } sort_numbers_descending(arr, n); printf("\n-------------------------------\n"); printf("This program is posted at learnnc.com"); return 0; }
Output: