Home >Backend Development >C++ >C++ program: Sort array elements in ascending order

C++ program: Sort array elements in ascending order

PHPz
PHPzforward
2023-09-13 08:49:021262browse

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);
}

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, 

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 ]​​i>
    • 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);
}

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, 

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!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete