Home > Backend Development > C++ > body text

C++ program: Sort array elements in ascending order

PHPz
Release: 2023-09-13 08:49:02
forward
1258 people have browsed it

C++ program: Sort array elements in ascending order

In order to solve some problems effectively, it is very important to arrange the data items in the correct position order. One of the most popular permutation problems is the element ordering problem. this This article will demonstrate how to sort array members in ascending order in C (according to value keeps rising).

To arrange numeric or non-numeric elements in a specific order, there are many ways Sorting algorithms can be used in this area. Just two simple sorting techniques will be introduced in this article. Selection sort and bubble sort. Let us check them one by one Use appropriate technology and C implementation code alone.

Use bubble sorting technique to sort the array in ascending order

One of the most popular and straightforward ways to sort array components is Bubble sort method. In this method, two elements are checked sequentially to See if they are in the correct order. If not, the method swaps elements until they The order is correct. After that, move to the right and repeat the process with the other group values. Individual elements are placed in the correct expected position at the end Each of the several stages of bubble sorting technology. Look at bubble sort algorithm.

algorithm

  • Read array A and its size n as input
  • For i ranging from 0 to n-1, execute
    • For j ranging from 0 to n - 2, execute
      • If A[j] > A[j 1], then
        • Exchange A[j] and A[j 1]
      • If it ends
    • Finish
  • Finish

Example

#include <iostream>
using namespace std;
void display( int arr[], int n ){
   for ( int i = 0; i < n; i++ ) {
      cout << arr[i] << ", ";
   }
}
void swap ( int &a, int &b ){
   int temp = a;
   a = b;
   b = temp;
}
void solve( int arr[], int n ){
   int i, j;
   for ( i = 0; i < n; i++ ) {
      for ( j = 0; j < n-1; j++ ) {
         if ( arr[j] > arr[ j+1 ] ) {
            swap( arr[j], arr[ j + 1 ] );
         }
      }
   }
}
int main(){
   int arr[] = {8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84};
   int n = sizeof( arr ) / sizeof( arr[0] );
   cout << "Array before sorting: ";
   display(arr, n);
   solve( arr, n );
   cout << "\nArray After sorting: ";
   display(arr, n);
}
Copy after login

Output

Array before sorting: 8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84, 
Array After sorting: 2, 5, 8, 10, 12, 12, 25, 36, 44, 45, 58, 63, 74, 78, 84, 89, 95, 96, 
Copy after login
Copy after login

Sort the array in ascending order using selection sort technique

When using the selection sort strategy, we start from index I and go to the end Given an array, find the minimum or maximum element. Suppose we are Reveal each ingredient. It locates the smallest element from index I to the end At each stage, place the elements in place and repeat the process Find the next largest element from index I 1 and so on. These stages are about to be completed, Then the entire array will be sorted appropriately.

algorithm

  • Read array A and its size n as input
  • For i ranging from 0 to n-1, execute
    • ind := The smallest element index from i to n in A
    • If A[ i ] > A[ ind ], then
      • Exchange A[ i ] and A[ ind ]
    • If it ends
  • Finish

Example

#include <iostream>
using namespace std;
void display( int arr[], int n ){
   for ( int i = 0; i < n; i++ ) {
      cout << arr[i] << ", ";
   }
}
void swap ( int &a, int &b ){
   int temp = a;
   a = b;
   b = temp;
}
int min_index( int arr[], int n, int s, int e ){
   int min = 99999, min_ind = -1;
   for ( int i = s; i < e; i++ ) {
      if ( arr[i] < min ) {
         min = arr[i];
         min_ind = i;
      }
   }
   return min_ind;
}
void solve( int arr[], int n ){
   int i, j, ind;
   for ( i = 0; i < n; i++ ) {
      ind = min_index( arr, n, i, n );
      if ( arr[i] > arr[ ind ] ) {
         swap( arr[i], arr[ ind ] );
      }
   }
}
int main(){
   int arr[] = {8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84};
   int n = sizeof( arr ) / sizeof( arr[0] );
   cout << "Array before sorting: ";
   display(arr, n);
   solve( arr, n );
   cout << "\nArray After sorting: ";
   display(arr, n);
}
Copy after login

Output

Array before sorting: 8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84, 
Array After sorting: 2, 5, 8, 10, 12, 12, 25, 36, 44, 45, 58, 63, 74, 78, 84, 89, 95, 96, 
Copy after login
Copy after login

in conclusion

A basic problem is sorting, which involves arranging numbers or other items according to order Predetermined layout logic. There are many other sequencing techniques available in this field, But in this article, we’ll focus on two that are easy to use and understand. these two Sorting techniques include selection sorting technology and bubble sorting technology. We have Use these two techniques to arrange the data set in ascending (not descending) order. Although not very time efficient, these two sorting techniques are simple. both Both techniques require a time investment of O(n2), where n is enter. As long as it is judged whether there has been a change, there will be no change in subsequent stages There is no swapping at any stage, making bubble sort faster.

The above is the detailed content of C++ program: Sort array elements in ascending order. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template