题目描述
给定n个元素的数组(下标从1开始计),请使用插入排序对其进行排序(升序)。
输入格式
两行,第一行为一个整数n,表示元素的个数。 第二行n个空格分隔的整数,表示数组的各个元素。
输出格式
n-1行,每行为每次插入排序后数组的状态。
样例输入
5 5 4 3 2 1
样例输出
4 5 3 2 1 3 4 5 2 1 2 3 4 5 1 1 2 3 4 5
问题提示
n<=10000,数组元素保证在int范围内。
#include<iostream>
using namespace std;
int arr[10005],n;
void insertSort(int arr[], int length) {
for (int i = 1; i < length; i++) {
int temp = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > temp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
for (int k = 0; k < n; k++) {
cout << arr[k] << " ";
}
cout<<endl;
}
}
int main() {
int x;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
arr[i]=x;
}
insertSort(arr, n);
return 0;
}