在C语言中如何实现一个简单的冒泡排序算法?

2026-04-28 02:570阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2206个文字,预计阅读时间需要9分钟。

在C语言中如何实现一个简单的冒泡排序算法?

从何说起?近期和朋友讨论一个话题,他们的应用有几十万会员工后对应用有评分,现在想做一些评分排名的需求,问有什么好方案。这个问题也常见,很多地方都能看到,常规做法一。

从何说起

前些天和朋友讨论一个问题,他们的应用有几十万会员然后对应有积分,现在想做积分排名的需求,问有没有什么好方案。这个问题也算常见,很多地方都能看到,常规做法一般是数据定时跑批把计算结果到中间表然后直接查表就行,或者只显示个TOP N的排行榜,名次高的计算真实名次,名次比较低的直接显示在xxx名开外这种。但是出于探索问题的角度,我还是想找一下有没有实时计算的办法,并且效率能够接受。

在博客园搜到一篇不错的文章,基本罗列了常用的方案,每种算法详细介绍了具体思路,其中基于二叉树的算法是个非常不错的方案,文章中只给了思路没有给出代码,于是我决定自己用C#实现出来。

这里只讨论具体算法实现,不考虑业务需求是否合理。

思路解析

关于算法核心思想前面的文章中写的很详细,我不再重复描述,这里只用一个具体示例演示这个过程。
假设积分范围是0-5,我们对它不断进行中位分区直到不能分为止,形成如下一棵二叉树:

其中每个树节点包含2个信息:节点范围range[min,max) 和命中数量计数器count ,可以看到叶子节点的range一定是相邻的2个数。

阅读全文

本文共计2206个文字,预计阅读时间需要9分钟。

在C语言中如何实现一个简单的冒泡排序算法?

从何说起?近期和朋友讨论一个话题,他们的应用有几十万会员工后对应用有评分,现在想做一些评分排名的需求,问有什么好方案。这个问题也常见,很多地方都能看到,常规做法一。

从何说起

前些天和朋友讨论一个问题,他们的应用有几十万会员然后对应有积分,现在想做积分排名的需求,问有没有什么好方案。这个问题也算常见,很多地方都能看到,常规做法一般是数据定时跑批把计算结果到中间表然后直接查表就行,或者只显示个TOP N的排行榜,名次高的计算真实名次,名次比较低的直接显示在xxx名开外这种。但是出于探索问题的角度,我还是想找一下有没有实时计算的办法,并且效率能够接受。

在博客园搜到一篇不错的文章,基本罗列了常用的方案,每种算法详细介绍了具体思路,其中基于二叉树的算法是个非常不错的方案,文章中只给了思路没有给出代码,于是我决定自己用C#实现出来。

这里只讨论具体算法实现,不考虑业务需求是否合理。

思路解析

关于算法核心思想前面的文章中写的很详细,我不再重复描述,这里只用一个具体示例演示这个过程。
假设积分范围是0-5,我们对它不断进行中位分区直到不能分为止,形成如下一棵二叉树:

其中每个树节点包含2个信息:节点范围range[min,max) 和命中数量计数器count ,可以看到叶子节点的range一定是相邻的2个数。

阅读全文