c++Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого выведите состояние данного массива после каждой вставки на отдельных строках. Если массив упорядочен изначально, то следует не выводить ничего.
Входные данные
На первой строке дано число (1 ≤ N ≤ 100) – количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 109.
Выходные данные
В выходной файл выведите строки (по количеству вставок) по N чисел каждая.
Примеры
входные данные
2
2 1
выходные данные
1 2
входные данные
4
2 1 5 3
выходные данные
1 2 5 3
1 2 3 5
Ответы
Ответ дал:
0
Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого выведите состояние данного массива после каждой вставки на отдельных строках. Если массив упорядочен изначально, то следует ничего не выводить.
Формат входных данных
На первой строке дано целое число n (1≤n≤100) — количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 10^9.
Формат выходных данных
В выходной файл выведите строки (по количеству вставок) по n чисел каждая.
-------------------------------------------------------------------------------------------
Задачу то я решил, вот только тестирующая система говорит, что слишком много написано
Correct
1 2 2 1 2 1
1 1 2 2 2 1
1 1 1 2 2 2
Output
1 2 2 1 2 1
1 2 1 2 2 1
1 1 2 2 2 1
1 1 2 2 1 2
1 1 2 1 2 2
1 1 1 2 2 2
C++Выделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include
#include
using namespace std;
int main(){
int n;
cin >> n;
vector a;
for (int i = 0; i < n; i++){
int b;
cin >> b;
a.push_back(b);
}
for (int i = 1; i < n; i++){
for (int j = i; j > 0; j--){
if (a[j - 1] > a[j]){
swap(a[j], a[j - 1]);
for (auto now : a){
cout << now << " ";
}
cout << "n";
}
else{
break;
}
}
}
return 0;
}
Формат входных данных
На первой строке дано целое число n (1≤n≤100) — количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 10^9.
Формат выходных данных
В выходной файл выведите строки (по количеству вставок) по n чисел каждая.
-------------------------------------------------------------------------------------------
Задачу то я решил, вот только тестирующая система говорит, что слишком много написано
Correct
1 2 2 1 2 1
1 1 2 2 2 1
1 1 1 2 2 2
Output
1 2 2 1 2 1
1 2 1 2 2 1
1 1 2 2 2 1
1 1 2 2 1 2
1 1 2 1 2 2
1 1 1 2 2 2
C++Выделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include
#include
using namespace std;
int main(){
int n;
cin >> n;
vector a;
for (int i = 0; i < n; i++){
int b;
cin >> b;
a.push_back(b);
}
for (int i = 1; i < n; i++){
for (int j = i; j > 0; j--){
if (a[j - 1] > a[j]){
swap(a[j], a[j - 1]);
for (auto now : a){
cout << now << " ";
}
cout << "n";
}
else{
break;
}
}
}
return 0;
}
Ответ дал:
0
кроме вектора и иострима, нужно ли еще какие-то хедеры подключать? а то кодблок не хочет запускать программу из-за for (auto now : a) , я а пока такого не изучала, буду рада, если объясните
Вас заинтересует
2 года назад
2 года назад
2 года назад
8 лет назад
8 лет назад
9 лет назад