Информатика, вопрос задал viktorfedotov334 , 7 лет назад

(таких вопрос тут куча но они на питоне, надо с++ обязательно, отдаю все баллы так что надеюсь на помощь)
Библиотечный метод
Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого выведите состояние данного массива после каждой вставки на отдельных строках. Если после рассмотрения очередного элемента массив не изменился, то его выводить не нужно. Если массив упорядочен изначально, то следует не выводить ничего.

Входные данные

На первой строке дано число N (1≤N≤100) — количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 109.

Выходные данные

Выведите строки (по количеству вставок) по N чисел каждая.

Примеры
Ввод:
2
2 1
Вывод:
1 2
Ввод:
4
2 1 5 3
Вывод:
1 2 5 3
1 2 3 5

Ответы на вопрос

Ответил restIess
2

#include <iostream>

#include <vector>

using namespace std;

void ins_sort(vector<int>& vec) {

for (int i = 1; i < vec.size(); i++) {

 int j = i - 1;

 int flag = 0;

 int temp = vec[i];

 while (j >= 0 && vec[j] > temp) {

  vec[j + 1] = vec[j];

  j--;

  flag++;

 }

 vec[j + 1] = temp;

 if (flag != 0) {

  for (int i = 0; i < vec.size(); i++) {

   cout << vec[i] << " ";

  }

  cout << endl;

 }  

}  

}

signed main() {

int N;

cin >> N;

vector<int> vec(N);

for (int i = 0; i < N; i++)  

 cin >> vec[i];

ins_sort(vec);

return 0;

}

Приложения:

viktorfedotov334: спасибо большое! код и в правду работает, спасибо еще раз!
Новые вопросы