插入排序
原理
从第2个数开始(数组下标1)遍历整个数组,把每个数取出来,不停地和他前面的数比较,如果比前面的数小,就把前面的数向后移一位。
继续往前比,只到前面没有为止。
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++)
cin >> a[i]; //输入数据
for (int i = 1; i < n; i++){ //从第二个开始,因为是往前面找
int p=i; //记下位置
int value=a[i]; //记下元素
while(p>0&&a[p-1]>value){ //只要前面还有数并且小于前面的数
a[p]=a[p-1]; //往后移
p--; //往前跑
}
a[p]=value; //把数据放进去
}
for (int i = 0; i < n; i++)
cout << a[i] << ' '; //输出
return 0;
}