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

Алгоритм сортировки шариков C ++ Упражнение: сортировка массива натуральных чисел с использованием алгоритма сортировки шариков

script1adsense2code
script1adsense3code

С ++ Сортировка: упражнение-2 с решением

Напишите программу на C ++ для сортировки массива натуральных чисел, используя алгоритм сортировки Bead.

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

Код C ++:

  //Ref: https://bit.ly/2rcvXK5
#include <iostream>
#include <vector>
using std::cout;
using std::vector;
 
void distribute(int dist, vector<int> &List) {
    if (dist > List.size() )
        List.resize(dist); 
     for (int i=0; i < dist; i++)
        List[i]++;
}
vector<int> beadSort(int *myints, int n) {
    vector<int> list, list2, fifth (myints, myints + n);
 
    cout << "1. Beads falling down: ";
    for (int i=0; i < fifth.size(); i++)
        distribute (fifth[i], list);
    cout << '\n';
 
    cout << "\nBeads on their sides: ";
    for (int i=0; i < list.size(); i++)
        cout << " " << list[i];
    cout << '\n';
 
    cout << "2. Beads right side up: ";
    for (int i=0; i < list.size(); i++)
        distribute (list[i], list2);
    cout << '\n';
 
    return list2;
}
 
int main() {
    int myints[] = {36, 4, 1, 4, 25, 32, 12, 43, 142, 6, 7, 1};
	cout << "Original array:\n";
	 for (int i=0; i < sizeof(myints)/sizeof(int); i++)
        cout << " " << myints[i];
    cout << '\n';
	vector<int> sorted = beadSort(myints, sizeof(myints)/sizeof(int));
	cout << "Sorted list/array: ";
	for(unsigned int i=0; i<sorted.size(); i++)
		cout << sorted[i] << ' ';
}

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

 Исходный массив:
 36 4 1 4 25 32 12 43 142 6 7 1
1. Бусы падают: 
Бусы на их сторонах: 12 10 10 10 8 8 7 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 3 3 3 3 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2. Бусины правой стороной вверх: 
Сортированный список / массив: 142 43 36 32 25 12 7 6 4 4 1 1 

Блок - схема:

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

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

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

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

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

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code