取第一个为基准,往后扫描,遇到比它小的往前放,一旦大了,可用break终止循环
#include<iostream>
using namespace std;
void Insertsort(int a[],int n) {
for (int i = 1; i < n; i++) {
int temp = a[i];
int j;
for ( j = i - 1; j >= 0; j--) { //从第i个元素的前一个元素,依次与a[i]进行比较,
if (temp < a[j]) {
a[j + 1] = a[j]; //
}
else {
break;
}
}
a[j + 1] = temp; //从它不小的前一个开始
}
}
void display(int a[], int n) {
for (int i = 0; i < n; i++) {
cout << a[i] << ' ';
}
cout << endl;
}
int main() {
int a[] = { 3,5,2,1,0,8,9,4,6,7 };
int n = sizeof(a) / sizeof(0);
display(a , n-1);
Insertsort(a, n - 1);
display(a, n - 1);
return 0;
}