(个人理解,学习自用)
一、原理
二、代码实现
#include <stdio.h>
int a[10] = {5,1,7,4,3,23,66,9,12,5};
int main() {
int i,j,t;
for (i = 1;i<=10;i++) {
t = a[i];//挪出一个空位置,并将这个数的值赋给k
for (j = i-1;j>=0 && a[j]>t;j--) {
//从i的前一个位置开始寻找,如果这个数在数组内,并且比t大那么循环继续向前查找j--
a[j+1] = a[j];//将后面的数往前挪
}
a[j+1] = t;//最后挪出的位置给t
}
for (i = 1;i<=10;i++)//将最终结果输出
printf ("%d ",a[i]);
return 0;
}