C/C++

Помогите составить программу на Visual Studio C++

Составить программу, сортирующую в порядке возрастания N введенных пользователем целых чисел (0 < N < 40)
Требуется описать действия составления программы со скриншотами, готов заплатить за проделанную работу.
Что тут платить-то?) Задачка уровня 7 класса: https://pastebin.com/sU8CGUXn

#include <iostream>
#include <vector>

using namespace std;

template <class T>
void selectionSort(vector<T> &arr){
const int N = arr.size();
for(int i = 0; i < N; i++){
int minElemIndex = i;
for(int j = i + 1; j < N; j++)
if(arr[j] < arr[minElemIndex])
minElemIndex = j;
swap(arr[i], arr[minElemIndex]);
}
}

int main(){
int n;
cout << "Input amount of elements:\n";
cin >> n;
vector<int> a(n);
cout << "Input elements themselves:\n";
for(auto &i: a) cin >> i;
cout << "Array before sorting:\n";
for(auto &i: a) cout << i << " ";
selectionSort(a);
cout << "\nArray after sorting:\n";
for(auto &i: a) cout << i << " ";
}

Асимптотика: O(n^2)

Работает по принципу простейшей сортировки выбором:
1) полагаем, что префикс длины i(i = 0, 1,2 ..., n) отсортирован.
2) В таком случае, из оставшихся n - i элементов надо найти минимальный и поменять его местами с первым неотсортированным элементом.
3) получили массив с отсортированным префиксом на один больше, чем был.
4) Повторяем действия, описанные выше пока длина отсортированного префикса не будет равна длине самого массива
Дмитрий `
Дмитрий `
2 620
Лучший ответ
Женя Новиков Приогромнейшее спасибо!
#include <iostream>
#include <set>
using namespace std;
int main() {
const auto m = 40U;
auto n = 0U;
while (n < 1U || n >= m) {
cout << "N: ";
cin >> n;
}
cout << ">>> ";
multiset<int> box;
int value;
for (auto i = 0U; i < n; ++i) {
cin >> value;
box.insert(value);
}
cout << "<<< ";
for (auto x : box) cout << x << ' ';
puts("");
system("pause > nul");
}
Сергей Колосов
Сергей Колосов
66 707
А чем STL функция sort не устраивает?

int n;cin>>n;int arr[n];
for(int &i:arr)cin>>i;
sort(arr,arr+n);
for(int &i:arr)cout<<i<<" ";
С сортировкой пузырьком:
#include <iostream>
using namespace std; int main()
{ int l, m, n; cout << "n: "; cin >> n; int a[n];
for (m = 0; m < n; m++) cin >> a[m];
for (l = 1; l < n; l++) for (m = n - 1; m >= l; m--)
if (a[m - 1] > a[m]) swap(a[m - 1], a[m]);
for (m = 0; m < n; m++) cout << a[m] << ' '; }
С функцией sort ещё короче:
#include <iostream>
using namespace std; int main()
{ int l, m, n; cout << "n: "; cin >> n; int a[n];
for (m = 0; m < n; m++)cin >> a[m]; sort(a, a + n);
for (m = 0; m < n; m++) cout << a[m] << ' '; }
Обе эти коротенькие программы написаны кодами начального уровня. И объяснять тут особо нечего, настолько всё стандартно, и деньги не надо никому платить невесть за что...
Серик Бестеков
Серик Бестеков
66 572