我是菜鸟我怕谁——关于冒泡排序的问题,希望高手帮帮。
关于冒泡排序,其中一些代码不懂,请帮帮忙,详细的解释一下。在此跪下盖头三下。顺便问一下,C#没有像JAVA那样有什么方法之类的排序吗?
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] s = new int[5];//声明数组
int i, j;//循环变量
int map;//临时变量
Console.WriteLine("请输入5个学生的成绩:");
for (i = 0; i < s.Length; i++)//循环读入数据
{
Console.WriteLine("请输入第{0}学生的成绩:", i + 1);
s[i] = int.Parse(Console.ReadLine());
}
for (i = 0; i < s.Length-1; i++)///这个数组长度减1,为什么要减1呢
{
for (j = 0; j <s.Length-1-i; j++)///这个我都更不明白了,减1再减i
{
if (s[j] > s[j + 1])///这个s[j]第一次循环是数组的第0位元素不可能大于S [j+1] 这个元素吧,S [j+1]指的是数组第1位元素吧
{
map = s[j];//还有这个
s[j] = s[j + 1];//还有这个
s[j + 1] = map;//还有这个
}
}
}
Console.WriteLine("排序后的成绩为:");
for (i = 0; i < s.Length; i++)
{
Console.Write("{0}\t", s[i]);
}
Console.ReadLine();
}
}
}