这应该是插入排序法,C语言实现如下:
#include<stdio.h>
void main()
{
int i,j,k,n,m,a[1000];
scanf("%d",&n);//输入元素的个数。
for(i=0;i<n;i++)
{
scanf("%d",&m);//输入第i+1个待排序的数。
for(j=i-1;(j>=0)&&(m<a[j]);j--);
for(k=i;k>j;k--)
a[k]=a[k-1];
a[j+1]=m;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}
样例输入:
10
16 13 41 51 12 42 79 951 34 65
样例输出:
12 13 16 34 41 42 51 65 79 951
其N-S图表示算法如下:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/54fbb2fb43166d22e0d1a29b412309f79052d21f?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)