C#详细说明一下这个方法?

来源:百度知道 编辑:UC知道 时间:2024/07/06 15:22:39
这是一个排序算法的方法,请详细解释一下这个方法是怎么起作用的,特别是标红的地方,和两个变量的作用tempx, tempy
saiter2306 - 江湖新秀 四级 你有试试这程序吗,没有你说的问题哦,可以很好的排序,多小到大

提问的朋友,我没有说这样的程序不能显示正确的答案,但是他在程序的逻辑上有明显的错误,确实,这样的程序跟我修改过的,最后输出的答案是一样的,但是你认为哪个更有效率?呵呵,恕我冒昧,敢问你在质疑我的回答之前,是否又有验证过呢?预估能力是一个程序员的重要技能,这样的程序不是让计算机执行,而是你自己先“执行”,最后能做到一段简单的程序摆在面前,可以闪过最后的输出结果以及循环次数。

如果你对我的答案还有疑问,麻烦把下面的程序用(i = -1)和(i = i -1)分别执行一下(跟原始程序是一样的,不过原始程序每个数字输出都换行,不利于观察,稍微改动了一下),好好看看输出的内容就知道到底所谓的效率是说的什么了。

如果还有问题,可以百度留言,我上线的时候会回答的。

public static void Sort(int[] a)
{
int tempx = 0;
int tempy = 0;

for (int i = 0 ; i < 20 - 1 ; i++)
{
for (byte x = 0 ; x < 20 ; x++)
Console.Write(a[x]+" ");
Console.WriteLine();
tempx = a[i];
tempy = a[i+1];

if (tempx > tempy)
{
a[i] = tempy;
a[i+1] = tempx;
i = -1; //i = i-1;
}
}

//------------------2009-03-21-18-04

LS的朋友,你觉得i从0再开始排序有意义吗,如果执行到i=17的时候,之前的大部分数其实都已经排好序了,再从头执行一遍不过是浪费时间。

//-------------------2009-03-2