c - 将未绑定(bind)的值排序到绑定(bind)的范围内?

标签 c algorithm math nsarray

我有一组未绑定(bind)的值存储在一个数组中(它是一个 NSArray,如果有帮助的话)。值的范围从 0 到无穷大(实际上最大值约为 100,000,000)。

我需要将数组中的值按0 到 20 的范围排序。

例如,如果我有一组 1000, 3123, 3131 将是 01000 将是 103123 将是 20。数组的成员数量和最大值各不相同,所以我知道如果有很多具有不同范围的值,那么其中很多值会在比例尺上占据相同的位置。 大多数时候,项目数量会超过 20 个(平均项目数量约为 100 个)。

当项目数量超过 20 时,一些项目应该具有相同的评级。

我需要这个来直观地表示每个搜索查询中歌曲的流行度,其中这些值是歌曲在全局排行榜上的位置的全局表示。

是否可以创建这样的算法?

最佳答案

如果我的理解是正确的,您只是想对您的值进行升序排序并将它们映射到 0 到 20 的范围内?所以你可以只计算你有多少个值(例如 11),将你的范围除以这个数字 - 1(例如 20/(11 - 1)= 2)并为每个值分配适当的数字(例如 0, 2, 4, 6, 8...)

关于c - 将未绑定(bind)的值排序到绑定(bind)的范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6740163/

相关文章:

zip 中的 CRC-32 字段

c - 将数值二维数组保存到图像

c - 简单链表无法打印

algorithm - 连续添加char得到字典中最长的单词

algorithm - 如何找到完整无向图中的哈密顿循环数?

python - 获取从字节到 gb python 的百分比

java - BigDecimal movePointRight 和 scaleByPowerOfTen 有什么区别?

java - 我需要一些帮助将一些代码从 C 转换为 Java

java - 二叉搜索树相加算法的实现

python - 2道数学题