j

j<strlen(s)-1-i为什么要减i?

问题描述:

读入一个字符串,将其中的所有字符按ASCII码升序排序后输出

 

这是冒泡排序的算法,固定写法,记住就行了。

假设长度是n,冒泡排序的两个循环写法如下:

int i,j;
for(i=0;i<n-1;i++)
{
	for(j=0;j<n-1-i;j++)
	{
		if(s[j] > s[j+1])
		{
			c = s[j];
			s[j] = s[j+1];
			s[j+1] = c;
		}
			
	}
}

这是冒泡排序,外层循环每一次结束,最大的那个数就会被移动到strlen(s)-i-1位置

楼上搞笑呢,“固定写法”,服了