黑马程序员技术交流社区

标题: 关于冒泡排序的一个小问题 [打印本页]

作者: 小天    时间: 2013-7-25 12:28
标题: 关于冒泡排序的一个小问题
本帖最后由 小天 于 2013-7-25 20:13 编辑

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 冒泡排序new
{
    class Program
    {
        static void Main(string[] args)
        {
            //对数组int[] values={0,4,2,3,5,10,8}进行从大到小排序
            int[] values={0,4,2,3,10,9};
            for (int i = 0; i < values.Length - 1; i++)//i控制趟数
            {
                for (int j = 0; j < values.Length - 1 - i; j++)
                {//j控制比较的次数
                    int temp;
                    if (values[j] < values[j + 1])
                    {
                        temp = values[j];
                        values[j] = values[j + 1];
                        values[j + 1] = temp;
                    }
                }
            }
            for (int i = 0; i <= values.Length - 1; i++)
            {
                Console.WriteLine(values);
            }
            Console.ReadKey();
        }
    }
}
冒泡排序方法中的内层for循环,j的值应该执行一次外层的for循环后,就被初始化为0,但是测试的时候和预期的结果不一样,希望大家帮忙分析一下是什么原因

作者: 小天    时间: 2013-7-25 12:34
自己先占个沙发
作者: 彭家贰小姐    时间: 2013-7-25 13:10
不明白你的疑问,你写的冒泡是对的呀,从大到小排序


作者: 马晓凤    时间: 2013-7-25 13:37
本帖最后由 马晓凤 于 2013-7-25 13:39 编辑

j值执行一次外层循环,说明内循环结束,刚刚定义的int j就被释放了,
进入第二次外循环又重新定义了一个int j,每进入下一次外循环,内循环的j都是重新定义的
作者: 小天    时间: 2013-7-25 13:41
彭家贰小姐 发表于 2013-7-25 13:10
不明白你的疑问,你写的冒泡是对的呀,从大到小排序

怎么样将这个帖子设为已解决?
作者: 彭家贰小姐    时间: 2013-7-25 16:17
小天 发表于 2013-7-25 13:41
怎么样将这个帖子设为已解决?




作者: 小天    时间: 2013-7-25 20:14
彭家贰小姐 发表于 2013-7-25 16:17

谢谢:lol




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2