利用插入排序法将十个字符从小到大排序

http://wenwen.soso.com/z/q64302385.htm这里面的s[j+1]=t;这一步怎么理解?详细些,谢谢~

第一次循环i=1,j=0
这个时候t=s[1],是第二个数
s[j]是第一个数
如果t<s[j]就是第二个数比第一个数小的话
s[j+1]=s[j]
把第一个数附给第二个数
然后j--
这个时候s[j+1]就是原来的s[j]
s[j+1]=t就是把第一个数的值设为t

这边相当于一个数值的换位
前一位是a,后一位是b,t=b
如果后面一位小于前面一位,就要交换
b=a;
a=t;
这样就换好了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-02
利用插入排序法将十个字符从小到大排序
#include <stdio.h>
void insert(char s[])
{
int i,j,t;
for (i=1;i<=9;i++)
{
t=s[i];j=i-1;
while ((j>=0)&&( ~t<=s[j]~ ))
{
s[j+1]=s[j];
~j--~ ;
}
s[j+1]=t; ///// 上面的语句结束,就执行交换
}
}

main()
{
char a[11];int i;
for (i=0;i<10;i++)
a[i]=getchar();
~在此填语句~
insert(a);
puts(a);
}
我也不是太明白,仔细看看数据结构里面关于插入排序的讲解吧&