• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#实现冒泡算法--不一定效率,但很容易理解

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

说明下冒泡:

 需要排序的数组 int[] array = [12, 123, 34, 12, 43, 6, 3, 23, 1234, 5 ];

 说明下冒泡的原理:我只贴了两张图,说明下

 一、第一遍:循环由下到上的比较,值小的上移(不小的保持不动),继续循环,直到把最小的值移至最上面。循环比较数组的所有的10个数值;

 二、第二遍:原理同上一步,唯一不同的是循环比较的个数,因为上一次的循环已经把最小的移至最上面了,所以这次的循环比较中不需要比较最上的的值了,也就是array个数减一,也就是这次只要比较9个数值就行了;

 三、以下同理,最后完成排序!

 

 

代码示例:

 

static void Main(string[] args)
        {
            int[] list = { 12123341243632312345 };
            int count = 0;
            count = Sort(list);

            Console.WriteLine(count);
            Console.WriteLine("**********************");
            for (int i = 0; i < list.Length; i++)
            {
                Console.WriteLine(list[i]);
            }
            Console.ReadKey();
        }

private static int Sort(int[] a)
        {
            int count = 0;
            for (int i = a.Length - 1; i > 0; i--)//控制第次比较的个数
            {
                for (int j = 0; j < i; j++)//
                {
                    //用于记录执行次数
                    count++;
                    if (a[j] < a[j + 1])
                    {
                        //这里使用了不加临时变量时进行数值交换的方法
                        
//当然加个临时变量也是一样的
                        a[j] = a[j] + a[j + 1];
                        a[j + 1] = a[j] - a[j + 1];
                        a[j] = a[j] - a[j + 1];
                    }
                }
            }
            return count;
        }

希望有人能帖个,高效率的冒泡!

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#Hex编码和解码发布时间:2022-07-13
下一篇:
c#Chart修改Legend发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap