wanhuo_haihai
wanhuo_haihai
2016-01-25 12:01
采纳率: 100%
浏览 2.3k

C#冒泡排序算法,调试不通过,求大神

今天老师布置个冒泡排序法的作业,用C#做。弄了很久,就是不能实现如下结果。求求大神棒棒我,帮我调好代码,今天就要交作业,痛苦啊。可以打开下面地址直接调制代码:

http://www.manonggu.com/biancheng/12

调试好了,可以保存,然后分享地址小窗口发给我,必有重谢!!

我这边继续做下一个作业。帮帮我啊

图片说明

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • leilba
    林深 2016-01-26 02:54
    已采纳

    前面那位仁兄的代码我改了一下,这样应该能过了

         public void BubbleSort()
        {
            int temp;
            for (int outer = 0; outer < upper; outer++)
            {
                for (int inner = 0; inner < upper - outer; inner++)
                {
    
                    if ((int)arr[inner] > arr[inner + 1])
                    {
                        temp = arr[inner];
                        arr[inner] = arr[inner + 1];
                        arr[inner + 1] = temp;
                    }
                }
            }
        }
    

    运行结果

    排序之前:
    96 15 66 90 35 94 71 61 34 14
    正在排序:

    排序之后:
    14 15 34 35 61 66 71 90 94 96

    点赞 评论
  • caozhy
    using System;
    class Carray
    {
        private int[] arr;
        private int upper;
        private int numElements;
        public Carray(int size)
        {
            arr = new int[size];
            upper = size - 1;
            numElements = 0;
        }
        public void Insert(int item)
        {
            arr[numElements] = item;
            numElements++;
        }
        public void DisplayElements()
        {
            for (int i = 0; i <= upper; i++)
                Console.Write(arr[i] + " ");
        }
        public void BubbleSort()
        {
            int temp;
            for (int outer = 0; outer < upper; outer++)
            {
                for (int inner = outer; inner < upper; inner++)
                {
    
                    if ((int)arr[inner] > arr[inner + 1])
                    {
                        temp = arr[inner];
                        arr[inner] = arr[inner + 1];
                        arr[inner + 1] = temp;
                    }
                }
            }
        }
        static void Main()
        {
            Carray nums = new Carray(10);
            Random rnd = new Random(100);//100以内的随机数
            for (Int16 i = 0; i < 10; i++)
            {
                nums.Insert(rnd.Next(0, 100));
            }
            Console.WriteLine("排序之前:");
            nums.DisplayElements();
            Console.WriteLine("\n正在排序:");
            nums.BubbleSort();
            Console.WriteLine("\n排序之后:");
            nums.DisplayElements();
            Console.ReadKey();
        }
    } 
    
    点赞 评论
  • wanhuo_haihai
    wanhuo_haihai 2016-01-25 12:29

    我在http://www.manonggu.com/biancheng/12 调试还是没有通过啊。能否分享下你调好的地址给我,这样我好直接分享到其他同学,拜托了

    点赞 评论
  • caozhy

    我测试了没有发现问题啊

    点赞 评论
  • caozhy
     排序之前:
    96 15 66 90 35 94 71 61 34 14
    正在排序:
    
    排序之后:
    15 66 35 61 14 34 71 90 94 96
    

    运行结果

    你看看你的输入输出是不是不符合要求

    点赞 评论
  • enpterexpress
    把分全给哥 2016-01-25 13:28
     public void BubbleSort(int[] array)
            {
                for (int i = 0; i < array.Length - 2; i++)
                {
                    for (int j = array.Length - 1; j >= 1; j--)
                    {
                        if (array[j] < array[j - 1])
                        {
                            int temp = array[j];
                            array[j] = array[j - 1];
                            array[j - 1] = temp;
                        }
                    }
                }
            }
    
    点赞 评论
  • lostmostar
    lostmostar 2016-01-26 09:50
     using System;
    class Carray
    {
        private int[] arr;
        private int upper;
        private int numElements;
        public Carray(int size)
        {
            arr = new int[size];
            upper = size - 1 ;
            numElements = 0;
        }
        public void Insert(int item)
        {
            arr[numElements] = item;
            numElements++;
        }
        public void DisplayElements()
        {
            for (int i = 0; i <= upper; i++)
                Console.Write(arr[i] + " ");
        }
        public void BubbleSort()
        {
            //int temp;
            //外循环,从最后一个数字开始
            for (int outer = upper; outer > 0; outer--)
            {
                //内循环,从数组第0个位置开始
                for (int inner = 0; inner <= outer - 1; inner++)
                {
                    if (arr[inner] > arr[inner + 1])
                    {
                        arr[inner] = arr[inner] ^ arr[inner+1];
                        arr[inner + 1] = arr[inner] ^ arr[inner+1];
                        arr[inner] = arr[inner] ^ arr[inner+1];
                        /**
                        temp = arr[inner];
                        arr[inner] = arr[inner + 1];
                        arr[inner] = temp;
                        **/
                    }
                }
            }
        }
        static void Main()
        {
            Carray nums = new Carray(10);
            Random rnd = new Random(100);//100以内的随机数
            for (Int16 i = 0; i < 10; i++)
            {
                nums.Insert(rnd.Next(0, 100));
            }
            Console.WriteLine("排序之前:");
            nums.DisplayElements();
            Console.WriteLine("\n正在排序:");
            nums.BubbleSort();
            Console.WriteLine("\n排序之后:");
            nums.DisplayElements();
            Console.ReadKey();
        }
    }
    
    点赞 评论

相关推荐