TopN算法:从已经存在的数组中,找出最大(或最小)的前n个元素。算法(以找最大的n个元素为例):
1. 取出数组的前n个元素,创建长度为n的小根堆;
2. 从n开始循环数组的剩余元素,如果当前元素比小根堆的根节点大,则将当前元素设置成小根堆的根节点,并通过调整让堆保持小根堆;
3. 循环完成后,小根堆中的所有元素就是需要找的最大的n个元素;
4. 根据需要对小根堆中的所有元素继续利用堆排序...
分类:
编程语言 时间:
2015-03-08 18:52:17
阅读次数:
203
函数:数据类型--变量常量--运算符表达式--语句(顺序,分支,循环)--数组--函数程序里的函数:能完成一个相对独立功的代码块。数学里的函数:高度抽象。函数四要素:函数名,输入,输出,加工函数定义:[static]返回类型函数名(输入参数列表){//函数体——加工}函数调用:函数名(参数); ——...
Python 使用循环数组实现队列 (基于class, 包含迭代器)...
分类:
编程语言 时间:
2015-02-02 18:01:26
阅读次数:
293
原题链接:https://oj.leetcode.com/problems/3sum/
经典3sum题,不过要注意这里的去重,去重是给原来这道题的基本形式加的难点。
1. 数组如果大小小于3,那就没有任何结果。
2. 将数组排序
3. 然后循环数组,每次都选取i所在的当前值为第一个结果,然后选取left = i + 1和right = size - 1。则问题变为num[left]...
分类:
其他好文 时间:
2015-01-12 17:39:26
阅读次数:
174
在之前的两篇博客(线程安全的无锁RingBuffer的实现,多个写线程一个读线程的无锁队列实现)中,分别写了在只有一个读线程、一个写线程的情况下,以及只有一个写线程、两个读线程的情况下,不采用加锁技术,甚至原子运算的循环队列的实现。但是,在其他的情况下,我们也需要尽可能高效的线程安全的队列的实现。本...
分类:
编程语言 时间:
2015-01-11 22:47:53
阅读次数:
307
1.数组的作用 批量处理数据2.声明数组 var arr=[元素1,元素2,元素3...] //快速声明 arr[1] //调用元素 var arr=new Array(元素1,元素2,元素3); //使用Array对象方式声明3.遍历数组 for循环4.数组处理函数 .len...
分类:
编程语言 时间:
2015-01-02 22:22:31
阅读次数:
259
C#函数的基础应用函数之前的知识回顾 数据类型--变量常量--运算符表达式--语句(顺序,分支,循环)--数组--函数程序里的函数:能完成一个相对独立功能的代码模块。 数学里的函数:高度抽象。 函数四要素:函数名,输入,输出,加工 函数定义:[static] 返回类型 函数名(输入参数列表){ //...
函数:数据类型--变量常量--运算符表达式--语句(顺序,分支,循环)--数组--函数程序里的函数:能完成一个相对独立功的代码块。数学里的函数:高度抽象。 函数四要素:函数名,输入,输出,加工 函数定义:[static] 返回类型 函数名(输入参数列表){ //函数体——加工}函数调用:函数名(参数...
分类:
其他好文 时间:
2014-12-29 22:56:15
阅读次数:
185
C#函数的基础应用函数之前的知识回顾数据类型--变量常量--运算符表达式--语句(顺序,分支,循环)--数组--函数程序里的函数:能完成一个相对独立功能的代码模块。数学里的函数:高度抽象。 函数四要素:函数名,输入,输出,加工 函数定义:[static] 返回类型 函数名(输入参数列表){ //函数...
阻塞队列是后台开发中多线程异步架构的基本数据结构,像python, java 都提供线程安全的阻塞队列,c++ 可能需要自己实现一个模板。
从性能考虑,自己没有使用STL的queue作为基本数据结构,而是使用循环数组作为基本数据结构,性能应该比queue高,省去了动态内存分配和回收。
确定就是,队列大小不可动态扩展,当时实际开发中,可以通过压力测试,配置合适的队列大小。
代码量非常小,可以进行工程开发直接使用。...
分类:
编程语言 时间:
2014-11-14 00:15:05
阅读次数:
500