кодесурса
«C ++

Упражнения на C ++: сортировка заданного массива 0, 1 и 2

script1adsense2code
script1adsense3code

C ++ Array: Упражнение 16 с решением

Напишите программу на C ++ для сортировки заданного массива 0, 1 и 2. В последнем массиве сначала поместите все 0, а затем все 1 и 2.

Пример решения:

Код C ++:

#include <bits/stdc++.h>
using namespace std;
void swap(int *x, int *y)
{
    int temp = *x;
    *x = *y;
    *y = temp;
}
void sort_012_num(int nums[], int n)
{
    int i = 0;
    int j = n - 1;
    int mid_num = 0;
 
    while (mid_num <= j)
    {
        switch (nums[mid_num])
        {
        case 0:
            swap(&nums[i++], &nums[mid_num++]);
            break;
        case 1:
            mid_num++;
            break;
        case 2:
            swap(&nums[mid_num], &nums[j--]);
            break;
        }
    }
}
 
 
int main()
{
    int nums[] = {0, 1, 2, 2, 1, 1, 0, 0, 1}; 
    int n = sizeof(nums)/sizeof(nums[0]);
   	cout << "Original array: ";
    for (int i=0; i < n; i++) 
    cout << nums[i] <<" ";
    sort_012_num(nums, n);
 
    printf("\nArray elements after rearranging: ");
      for (int i=0; i < n; i++) 
      cout << nums[i] <<" ";
        return 0;
      }

Пример вывода:

 Исходный массив: 0 1 2 2 1 1 0 0 1 
Элементы массива после перестановки: 0 0 0 1 1 1 1 2 2    

Блок - схема:

«Блок-схема:

Редактор кода C ++:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на C ++ для перестановки заданного отсортированного массива натуральных чисел.
Далее: Напишите программу на C ++ для сортировки (в порядке убывания) массива различных элементов в соответствии с абсолютной разницей элементов массива и с заданным значением.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code