- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
#include <iostream>
#include <vector>
#include <stdlib.h>
#include <time.h>
using std::vector;
void print_vec(const vector<int> v)
{ /* Print Vector */
for(vector<int>::size_type i(0); i!=v.size(); ++i)
std::cout << v[i] << (i!=v.size()-1 ? "|":"\n");
}
bool sort_vec(const vector<int> v)
{ /* Return True if vector sorted */
bool b(true);
for(vector<int>::size_type i(v.size()-1);i!=0;--i)
if (v[i]<v[i-1]) {b=false;}
return b;
}
int main()
{
vector<int> VectorForNumber;
const unsigned int ConstMaxElement(10);
srand(time(NULL));
for(vector<int>::size_type i(0);i!=ConstMaxElement;++i)
VectorForNumber.push_back(rand() % 50); // Max Number. Unsigned int && 0<N!
while (not sort_vec(VectorForNumber))
{
print_vec(VectorForNumber);
std::swap(VectorForNumber[rand() % ConstMaxElement],VectorForNumber[rand() % ConstMaxElement]);
}
print_vec(VectorForNumber);
return 0;
}
Менять местами два элемента вектора до тех пор, пока он не станет отсортированным по возрастанию.
С выводом сортирует примерно за 30 секунд вектор из 10 элементов, без вывода - от 0.5-1 секунды.