C/C++

Задача по с++, Отсортируйте заданный массив.

Формат входных данных
Первая строка входных данных содержит одно натуральное число n (1≤n≤105) — количество элементов в массиве. В следующей строке находятся элементы массива — n целых чисел, не превосходящих по абсолютной величине 109.

Формат выходных данных
Выведите элементы массива в порядке неубывания.
входные данные:
3
2 1 3
выходные данные:
1 2 3
// С пузырьковой сортировкой:
#include "iostream"
using namespace std; int main()
{ int i,j,n,b; for (;;) { cout << "n = ?\b"; cin >> n; int a[n]; cout << ">> "; for (i=0; i < n; i++) cin >> a[i]; for (i=1; i < n; i++) for (j=n-1; j >= i; j--) if (a[j-1] > a[j]) { b=a[j-1]; a[j-1]=a[j]; a[j]=b; } for (i=0; i < n; i++) cout << a[i] << ' '; cout << endl; } }
КГ
Костя Головин
28 648
Лучший ответ
#include <algorithm>
#include <iostream>
#include <array>
using namespace std;
int main() {
array<unsigned, 105> box;
size_t n;
cin >> n;
for (auto i = 0U; i < n; ++i) cin >> box[i];
sort(box.begin(), box.begin() + n);
for (auto i = 0U; i < n; ++i) cout << box[i] << ' ';
cout.put('\n');
system("pause > nul");
}
Aleksey Sigachev
Aleksey Sigachev
58 742
int n = 0;
// ввод кол-ва чисел
int[] nums = new int[n];
// через for заполняем
bool b = true;
while(true)
{
for (int i = 1; i < nums.Length; i++)
{
if(nums[i] < nums[i-1])
{
int t = nums[i];
nums[i] = nums[i - 1];
nums[i - 1] = t;
b = false;
}
}
if(b)
{
break;
}
b = true;
}
// выводим nums в консоль