第九十二课 编程题-排序-冒泡排序(手动)
编写一个控制台程序,要求用户输入一组数字并用空格隔开,对用户输入的数字从小到大的顺序输出。(Array.Sort方法和冒泡排列)
string a = Console.ReadLine();
string[] b = a.Split(" ");
int[] c = new int[b.Length];
for (int d = 0; d < b.Length; d++)
{
int e = Convert.ToInt32(b[d]);
c[d] = e;
}
for (int f = 0; f < c.Length - 1; f++)
{
for (int g = 0; g < c.Length - 1-f; g++)
{
if (c[g] > c[g + 1])
{
int temp = c[g];
c[g] = c[g + 1];
c[g + 1] = temp;
}
}
}
foreach (int h in c)
{
Console.Write(h + " ");
}
分析:
1.外层循环for (int f = 0; f < c.Length - 1; f++)
与
内层循环 for (int g = 0; g < c.Length - 1-f; g++)
其实是一个意思。
外层循环以为f++的增长与c.Length - 1(不变值)而随循环次而减少这次数,也就是他们之间的距离在缩短。
内层循环应为g=0(不变值),每次循环都从0开始,但c.Length - 1-f是每次都减少的,所以他们之间的距离也在缩小。
所以,内层循环和外层循环意思是一样的,但他们都同步。
2. c本来就是一个组,可以放在里面很多数字,所以当它是c[]时,就放心大胆的用foreach。
3. 这道题就是将字符串以空格拆分为一个一个的小字符串保存在字符串组中,在将字符串组中的没个成员分别转换为数字,并存放在数字组中,然后用冒泡排序方法将数字组中的数字从小到大排列,最后输出。