A. DS内排—直插排序
题目描述
给定一组数据,使用直插排序完成数据的升序排序。
–程序要求–
若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio
程序中若include多过一个头文件,不看代码,作0分处理
不允许使用第三方对象或函数实现本题的要求
输入
数据个数n,n个数据
输出
直插排序的每一趟排序结果
样例查看模式
正常显示
查看格式
输入样例1 <-复制
7 34 23 677 2 1 453 3
输出样例1
23 34 677 2 1 453 3
23 34 677 2 1 453 3
2 23 34 677 1 453 3
1 2 23 34 677 453 3
1 2 23 34 453 677 3
1 2 3 23 34 453 677
#include <iostream>
using namespace std;
int main(){
int n;cin>>n;
int arr[100];
for (int i = 0; i < n; ++i) {
cin>>arr[i];
}
int i=1;
while (i<n){
int j=i;
while (j!=0&&arr[j]<arr[j-1]){
int temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
j--;
}
i++;
for (int k = 0; k < n-1; ++k) {
cout<<arr[k]<<" ";
}cout<<arr[n-1]<<endl;
}
}