作业帮 > 综合 > 作业

跪求帮忙分析一下程序的含义,运行结果是用插入法对数组a降序排序,但不知循环里面到底是什么意思

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/17 14:18:35
跪求帮忙分析一下程序的含义,运行结果是用插入法对数组a降序排序,但不知循环里面到底是什么意思
#include "stdio.h"
void main ()
{
int a[5]={4,7,2,5,1},i,j,m;
for(i=1;i=0&&m>a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=m;
}
for(i=0;i
跪求帮忙分析一下程序的含义,运行结果是用插入法对数组a降序排序,但不知循环里面到底是什么意思
m先把a[i]的值存放起来;
j=i-1;就是使a[j]成为a[i]左边的那个元素;
while(j>=0&&m>a[j])
{
a[j+1]=a[j];
j--;
}
这个循环就是把a[i]的值不断和左边的值做比较,如果左边的值是小于它的,就把那个值往右移动一个位置,当找到一个比a[i]的值大的值时,循环就会停止,这时a[j]指向的是比a[i]大的那个值.
a[j+1]=m;
最后这里,就是把m(原来a[i]的值)放在比它大的那个值的右边
下面,for循环继续执行