for (int i = 0; i < arry.Length - 1; i++)//控制比较的趟数,循环了一次表示比较了一趟
{
for (int t = 0; t < arry.Length - 1; t++)
{
if (arry[t] > arry[t + 1])
{
int temp = arry[t];
arry[t] = arry[t + 1];
arry[t+1]=temp ;
}
}
}
for (int i = 0; i < arry.Length - 1; i++)
{
Console.WriteLine(arry [i]);
}
Console.ReadKey();
}
}
}
复制代码
运行结果不对 请帮忙指点一下作者: 许庭洲 时间: 2013-6-20 16:07
for (int i = 0; i < arry.Length - 1; i++)
{
for (int t = 0; t < arry.Length - 1; t++)// 修改为: for (int t = 0; t < arry.Length - 1 - i ; t++)
{
if (arry[t] > arry[t + 1])
{
int temp = arry[t];
arry[t] = arry[t + 1];
arry[t+1]=temp ;
}
}
}
作者: 李云飞 时间: 2013-6-20 16:22
namespace 冒泡排序
{
class Program
{
static void Main(string[] args)
{
int[] arry = { 44,35,62,97,83,16 };
for (int i = 0; i < arry.Length - 1; i++)//控制比较的趟数,循环了一次表示比较
{
for (int t = 0; t < arry.Length - 1 - i; t++) //此处应该是t < arry.Length - 1 - i,比价一趟就已经确定了该趟所比价的几个数中的最大值了
{
if (arry[t] > arry[t + 1])
{
int temp = arry[t];
arry[t] = arry[t + 1];
arry[t+1]=temp ;
}
}
}
for (int i = 0; i < arry.Length - 1; i++)
{
Console.WriteLine(arry [i]);
}
Console.ReadKey();
}
}
}作者: 李云飞 时间: 2013-6-20 16:22
namespace 冒泡排序
{
class Program
{
static void Main(string[] args)
{
int[] arry = { 44,35,62,97,83,16 };
for (int i = 0; i < arry.Length - 1; i++)//控制比较的趟数,循环了一次表示比较
{
for (int t = 0; t < arry.Length - 1 - i; t++) //此处应该是t < arry.Length - 1 - i,比价一趟就已经确定了该趟所比价的几个数中的最大值了
{
if (arry[t] > arry[t + 1])
{
int temp = arry[t];
arry[t] = arry[t + 1];
arry[t+1]=temp ;
}
}
}
for (int i = 0; i < arry.Length - 1; i++)
{
Console.WriteLine(arry [i]);
}
Console.ReadKey();
}
}
}作者: 蔡志涛 时间: 2013-6-20 16:27
你的内层循环应该这样写:
for (int t = 0; t < arry.Length - 1- i ; t++) //你内层循环的循环条件写的有问题
{
if (arry[t] > arry[t + 1])
{
int temp = arry[t];
arry[t] = arry[t + 1];
arry[t+1]=temp ;
}
}作者: 彭家贰小姐 时间: 2013-6-20 17:24
正如上面的人所说 你的内循环写错了...
我说下我对冒泡排序的理解吧,希望对你有作用