for (int i = 1; i < n; ++i) {//从1开始,因为第0个不用插
int value = arr[i];//要插的元素
int j = 0;//插入的位置
for (j = i-1; j >= 0; j--) {//从后往前找
if (arr[j] > value) {//升序
arr[j+1] = arr[j];//移动数据,保证要插的在大数之前
} else {
break;
}
}
arr[j+1] = value; //插入数据,此时终于找到比要插的小的元素了,就把他插在小的后面,即j的后面j+1
}
来源:CSDN
作者:希望能读博
链接:https://blog.csdn.net/qq_36299458/article/details/104591473