首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏C++信息学奥赛

    杨校老师课堂之排序——计数

    t,对应位置的计数 + 1)。 (三) 核心算法思想频率统计(计数思想)核心逻辑:用数组作为 “计数器”,通过 a[t]++ 实现对每个数字出现次数的累加。优势:时间复杂度为 O (n)(n 为输入数量),比用嵌套循环统计更高效。 【输入样例】7 2 5 6 1 2 8 9 2 8 3 3 9 9 4 3 1 9 4 5 3 9 1 6 4 8 3 9 1 7 1 7 1 2 3 2 5 4 1 2 6 4 7 9 4 6 10 【输入样例】7 2 5 6 1 2 8 9 2 8 3 3 9 9 4 3 1 9 4 5 3 9 1 6 4 8 3 9 1 7 1 7 1 2 3 2 5 4 1 2 6 4 7 9 4 6 10 【输入样例】5 32 4 5【输出样例】1 3#include<iostream> // 包含输入输出流头文件,用于输入输出操作using namespace std; // 使用标准命名空间,方便使用其中的函数和对象

    26400编辑于 2025-07-03
  • 来自专栏swag code

    BucketSort-排序-计数排序

    import java.util.Arrays; public class BucketSort { //排序-计数排序 public static void bucketSort(int[]

    39950发布于 2018-08-20
  • 来自专栏ImportSource

    自己动手写令牌、漏计数等限流实现

    现在举个例子“访问者A在2秒内访问次数不能超过5次”。 那么你就需要一个数据结构来存储"访问者A",同时记录“2秒”的过期时间,同时要记录在这2秒内的访问次数。 好,这只是一个简单的通过计数和加过期时间的单机版的限流器。 令牌 ? 事实上,限流还有令牌的方式。令牌的方式同样也是类似计数的方式。 其实本质上还是计数。当和前面的那种计数不一样的地方是,令牌支持动态的添加token,也就是动态改变上限。你可以控制添加令牌的速率。 漏 ? 3、hystrix的线程池就类似漏的思路。 4、guava包中有现成的基于令牌的限流实现。 总结 计数+过期时间的方式就是一种粗暴的限流方式,也是常见的限流方式。但无法对流量整形。 如果在分布式下实现限流,需要把你的计数器和漏队列维护到一个公共的地方,比如redis,zookeeper,数据库等。hystrix的线程池就类似漏的思路,guava里有现成的基于令牌的限流实现。

    6.8K21发布于 2018-07-25
  • 来自专栏python3

    计数排序与排序python实现

    计数排序与排序python实现 计数排序 计数排序原理: 找到给定序列的最小值与最大值 创建一个长度为最大值-最小值+1的数组,初始化都为0 然后遍历原序列,并为数组中索引为当前值-最小值的值 计数排序实现 下面为列表的计数排序 def count_sort(s): """计数排序""" # 找到最大最小值 min_num = min(s) max_num = 当数值中有非整数时,计数数组的索引无法分配 排序 排序原理: 排序与计数排序类似,但可以解决非整数的排序 排序相当于把计数数组划分为按顺序的几个部分 每一部分叫做一个,它来存放处于该范围内的数 排序实现 这里选择的数量为序列元素个数+1,范围分别是5等分与最大值,和上面那个图一样。 main__': a = [3.2,6,8,4,2,6,7,3] bucket_sort(a) print(a) # [2, 3, 3.2, 4, 6, 6, 7, 8] 总结 计数排序与排序都是以牺牲空间换时间

    1.3K10发布于 2020-01-16
  • 来自专栏C++信息学奥赛

    杨校老师课堂之排序算法——标记计数练习

    从标准输入读取一个整数到 t t = t + 50; // 将 t 加上 50 ++a[t]; // 将数组 a 中下标为 t 的元素值加 1 } // 遍历每个查找出现次数超过一半数字 样例输入10 3 1 3 3 7 2 5 1 2 4 6输出3#include<iostream>using namespace std;int main() { int a[ cin >> t; // 从标准输入读取一个整数到 t ++a[t]; // 将数组 a 中下标为 t 的元素值加 1 } int cnt = 0; // 定义计数器 cnt 并初始化为 0 // 遍历每一个对出现数字进行计数 for(int i = 1; i <= 30000; ++i){ // 循环 30000 次,从 1 到 30000 = 0){ // 如果数组 a 中下标为 i 的元素值不为 0 ++cnt; // 计数器 cnt 加 1 if(cnt == k){ // 如果计数

    21200编辑于 2025-07-05
  • 来自专栏算法工程师之路

    单调栈-LeetCode 739、287(单调栈,计数

    单调栈,计数:LeetCode #739 287 1 编程题 【LeetCode #739】每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数 (计数) 由于题目是n+1个1到n的数,那么只要将对应数值放到其相应的索引号位置,如果没有在,就交换,直到遍历到的数值与其对应的数值一样,说明坑被占了,那么这个数就是答案了! }else{ r = mid; } } return l; } }; (方法四:计数

    80610发布于 2019-11-14
  • 来自专栏小樱的经验随笔

    基数排序与排序,计数排序【详解】

    5个数 9 { 10 scanf("%d",&t); //把每一个数读到变量t中 11 a[t]++; //进行计数 每出现一个数,就在对应编号的中放一个小旗子,最后只要数数每个中有几个小旗子就OK了。 例如2号中有1个小旗子,表示2出现了一次;3号中有1个小旗子,表示3出现了一次;5中有2个小旗子,表示5出现了两次;8号中有1个小旗子,表示8出现了一次。 ? 9 3 9 10 9 2 4 13 10 2 ---------------------- 3 2 3 4 5 9 9 9 10 10 13 计算排序构造了k个buckets来统计数据频次,共需要两趟来实现排序 ,第一趟增量计数进行统计,第二趟将计数统计的对应的数重写入原始数据表中。

    1.2K70发布于 2018-04-09
  • 来自专栏BAT的乌托邦

    二十三、Hystrix计数器:BucketedCounterStream

    上图的每个小矩形代表一个,可以看到,每个都记录着1秒内的四个指标数据:成功量、失败量、超时量和拒绝量,这里的拒绝量指的就是上面流程图中【信号量/线程池资源检查】中被拒绝的流量。 10个合起来是一个完整的滑动窗口,所以计算一个滑动窗口的总数据需要将10个的数据加起来。 BucketedCounterStream它是抽象类,提供了基本的计数器(BucketedCounter)实现:按配置的时间间隔将所有事件聚合成。 Func1<Observable<Event>, Observable<Bucket>> reduceBucketToSummary; // 它是个Subject:既能发射数据,也能监听数据 // 用于计数 { return getEmptyOutputValue(); } } ---- 总结 BucketedCounterStream提供的能力可描述为:计数

    2.2K20发布于 2020-03-19
  • 来自专栏C++信息学奥赛

    杨校老师课堂之不去重排序算法——计数应用专项题单

    排序题目描述输入5个不大于10的正整数,请按照从小到大的顺序输出这5个数。输入描述输入5个正整数。输出描述从小到大顺序输出5个数。中间用空格隔开。 样例输入2 5 2 1 8输出1 2 2 5 8#include<iostream> using namespace std;int a[15] = {0};int main(){ // 主函数 int x; // 定义一个大小为15的整型数组a并初始化为0,以及一个整型变量x for(int i = 1; i <= 5; i++){ // 循环5次,从1到5 cin >

    19000编辑于 2025-07-03
  • 来自专栏愿天堂没有BUG(公众号同名)

    微服务容错与隔离:限流保护,计数器+漏+令牌算法限流实现

    计数器 比较简单的限流做法是维护一个单位时间内的计数器,每次允许请求计数器都加1,当单位时间内计数器累加到设定的阈值后,之后的请求都被拒绝,直到超过单位时间,再将计数器重置为零。 常用的更平滑的限流算法有两种:漏算法和令牌算法。 漏算法 漏算法的思路很简单,水(请求)先进入漏里,漏以一定的速度出水(接口有响应速度),当水流入的速度过大时(访问频率超过接口响应速度)会直接溢出,然后就拒绝请求。 因此,漏算法对于存在突发特性的流量来说缺乏效率。 令牌算法 令牌算法和漏算法效果相似,令牌算法更加容易理解。 首选引入Maven依赖: 然后使用Guava限流,Java代码实现如下: 本文给大家讲解的内容是微服务容错与隔离:限流保护,计数器+漏+令牌算法限流实现 下篇文章给大家讲解的内容是微服务容错与隔离

    39010编辑于 2022-10-28
  • 来自专栏前端博客

    再谈基数排序-分治思想:对比计数|基数||堆|希尔|快速|归并

    基数排序 vs 计数排序 vs 排序这三种排序算法都利用了的概念,都属于非比较排序。非比较排序是通过确定每个元素之前,应该有多少个元素来排序。 但对的使用方法上有明显差异:计数排序:每个只存储单一键值;需要占用大量空间,它仅适用于数据比较集中的情况。比如 [0~100],[10000~19999] 这样的数据。 每个有效数字都在0-9之间,很适合排序,建10个很方便这里个人总结下(对于整数排序):计数排序的个数N就是数组的 max-min+1,然后把数组的每一项数字num放到 num-min的中,然后按序依次取数排序的的个数 这与整数表示的正常顺序是一致的,例如序列1、2、3、4、5、6、7、8、9、10、11。 如果词典排序用于表示可变量长度的整数,例如从1到10 的数字,输出将表示为1, 10, 2, 3, 4, 5, 6, 7, 8, 9。

    70720编辑于 2023-06-06
  • 来自专栏呆呆熊的技术路

    计数器、滑动窗口、漏、令牌算法比较和伪代码实现

    想法很直接,就是想在一定时间内把请求限制在一定范围内,保证系统不被冲垮,同时尽可能提升系统的吞吐量 限流常用的方式 计数器、滑动窗口、漏、令牌 计数计数器是限流里最简单的,简单来说,比如 我限制1 到了2018-02-27 16:24:00,把计数器归零! 周而复始! ? 但这种会有问题!比如我在前58s都不请求,而在最后一秒请求60次!这样的效果跟木有啥区别.. 滑动窗口其实就是 细分之后的计数器! ? 这样假设, 先把一分钟划分成6段! 也就是10s一个段!在第一段里,假如请求61次,那么直接触发了规则!肯定就过不去了!如果只请求了1次!则是正常的! 如图所示,漏就是一个固定的,底有个漏洞,进水速率不用管不用管,有多少水不用管,反正就这个孔里漏出去! 如果里没有令牌了,则这个处理可以”抛弃掉” 令牌的好处就是,可以允许匀速,也允许范围内的突发处理! 类似于 我容量是100! 这时候1s一个请求,令牌速度也是1s一个!

    3.1K21发布于 2020-06-09
  • 来自专栏LeetCode

    排序、 计数排序、 基数排序 && 排序后邻数最大差值

    一.排序、 计数排序、 基数排序 非基于比较的排序, 与被排序的样本的实际数据状况很有关系, 所 以实际中并不经常使用 时间复杂度O(N), 额外空间复杂度O(N) 稳定的排序 二.排序后邻数最大差值 len, long min, long max) { return (int) ((num - min) * len / (max - min)); } n 个数采用n+1个, 那么会存在一个空桶,所需要的结果一定不在一个的内部。 最终的结果也并不是存在一个空桶的两侧 最终的结果是需逐个比较 这里存在一个空桶,那么最终的结果将不会在一个的内部,这也是空桶的作用

    58330发布于 2019-02-18
  • 来自专栏毛利学Python

    八十五、再探希尔排序,排序,计数排序和基数排序

    「---- Runsen」 关于排序,其实还有很多,比如常见的希尔排序,排序,计数排序和基数排序,今天一口气把十大排序剩下的全部解决。 计数排序 计数排序是一种思维很高的排序,使用的场景是「待排序序列中元素的取值范围比较小」,这种算法有时候会比快速排序还要快。 因此计数排序需要使用一个辅助数组计数列表,也可以叫做,因此空间复杂度不是 O(1) ,是一种牺牲空间换取时间的排序算法。 计数排序的核心思想:遍历待排序的数据,寻找最大值 k,然后开辟一个长度为k+1的计数列表,计数列表中的值都为0。如果走访到的元素值为i,则计数列表中索引i的值加1。 不同的就各自排序,所以叫做排序。 关于排序的代码编写,其实说简单也简单,说难也挺难。 下面,我以区间为10的来划分不同的里面的排序选择快排,因此也需要用递归写一个快排算法,具体代码如下。

    72020编辑于 2022-08-17
  • 来自专栏机器学习AI算法工程

    yolov5 行人 车辆 跟踪 检测 计数

    实现了 出/入 分别计数。 显示检测类别。 默认是 南/北 方向检测,若要检测不同位置和方向,可在 main.py 文件第13行和21行,修改2个polygon的点。

    1.4K30编辑于 2021-12-17
  • 来自专栏全栈修炼

    JavaScript 数据结构与算法之美 - 排序、计数排序、基数排序

    之所以把 计数排序、排序、基数排序 放在一起比较,是因为它们的平均时间复杂度都为 O(n)。 const DEFAULT_BUCKET_SIZE = 5; //设置的默认数量为 5 bucketSize = bucketSize || DEFAULT_BUCKET_SIZE; const [1, 2, 2, 3, 4, 5, 5, 6, 8, 9] 分析 第一,排序是原地排序算法吗 ? 分析 第一,计数排序是原地排序算法吗 ?因为计数排序的空间复杂度为 O(k),k 是的个数,所以不是原地排序算法。 第二,计数排序是稳定的排序算法吗 ? } console.timeEnd('计数排序耗时'); return array; }; 测试 const array = [3, 44, 38, 5, 47, 15, 36, 26, 27,

    94341发布于 2019-07-30
  • 来自专栏sktj

    python pyqt5 QSpinBox 计数

    -- coding: utf-8 -- ''' 【简介】 PyQt5中 QSpinBox 例子 ''' import sys from PyQt5.QtCore import * from PyQt5 .QtGui import * from PyQt5.QtWidgets import * class spindemo(QWidget): def init(self, parent=None):

    1K50发布于 2019-07-05
  • 来自专栏毛利学Python

    yolov5 + deepsort实现了行人计数

    本项目使用yolov5作为检测器,使用deepsort作为跟踪器,跟踪并计数镜头前走过的行人数量。 代码中设置的是只计数行人的数量,如果要计数其他东西比如车辆之类的也非常简单,只需要稍微修改一下代码即可, 在parser.add_argument('--classes', default=0, type =int, help='filter by class: --class 0, or --class 0 1 2 3')中,通过classes来过滤yolov5要检测类别,0表示检测人,1表示自行车,还有其他的类别 config = parser.parse_args() print(yolo5_config) main(yolo5_config) print("结果保存在:", yolo5 _config.output) yolov5 + deepsort实现了行人计数功能, 统计摄像头内出现过的总人数,以及对穿越自定义黄线行人计数效果如下

    1.5K10编辑于 2022-12-20
  • 来自专栏菩提树下的杨过

    算法练习(5)-计数排序法及优化

    日常开发中,会遇到一些特定的排序场景:“待排序的值”范围很明细,比如:基金的星级排名,客服的好评星级排名,一般星级排名也就从1星到5星。 这种情况下,有一个经典的“下标计数排序法”,可以用O(n)的时间复杂度完成排序: static void sort0() { int[] arr = new int[]{5, 4 , 4, 1, 2, 3}; int[] indexCountArr = new int[6]; //下标计数排序 for (int i = 0; i EmpScore("S06", 3) }; //todo 待排序 } 按score评分星级排序后,如果希望S02仍然在S03前面,可以参考下面这样:(大致思路是在每个"" 的位置,引入了一个顺序结构的List) static void sort1(EmpScore[] arr) { //排序过程(下标计数排序) Map<Integer

    50430发布于 2021-03-27
  • 来自专栏开发与安全

    十种排序算法总结(冒泡、插入、选择、希尔、归并、堆、快速,计数,基数)

    (&arr[0], &arr[i]);         percDown(arr, 0, i);     } } int main(void) {     int arr[] = { 9, 2, 5, 八:计数排序 计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。 算法的步骤如下: 找出待排序的数组中最大和最小的元素 统计数组中每个值为i的元素出现的次数,存入数组C的第i项 对所有的计数累加(从C中的位置为1的元素开始,每一项和前一项相加) 反向填充目标数组:将每个元素 i放在新数组的第C(i)项,每放一个元素就将C(i)减去1 由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组 九:排序 排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。

    1.2K00发布于 2017-12-22
领券