
C/C++算法
以简洁的话语讲述枯燥的算法。
UsherYue
进入研发行业10年,曾任职与多家创业公司,负责核心研发工作,团队建设管理工作。
展开
-
Node.js插件编写(4)-函数工厂与对象工厂的实现
这篇文章我们通过通过nodejs插件完成 函数工厂和对象工厂的例子。首先看下面这段node.js代码,我们引用的my_node_addon插件需要导出createFunc函数 和 createObject函数, 并且 createObject函数返回的对象包含add和addCallback 两个加法函数var addon = require('bindings')('my_node_addon.node');//函数工厂var func=addon.createFunc...原创 2021-12-28 15:39:45 · 880 阅读 · 0 评论 -
Node.js插件编写(2)-通过NAN编写简单插件入门
上一篇文章我们介绍了通过Node-Api的方式编写一个插件,并且导出一个函数hello, 这篇文章我们介绍另一种插件开发方式NAN,NAN是出现在Node-Api之前的一种插件开发方式,采用的也是C++的封装。读本文内容仍然需要有C/C++开发基础,如没有请忽略。环境准备Python 3.x环境Node.js 15.x+gcc 8.2.x /VC2022MacOS /Windows编写项目代码创建插件文件夹,并创建package.json文件内容如下,依赖中我们引用了na原创 2021-12-27 15:18:49 · 2258 阅读 · 0 评论 -
Node.js插件编写(1)-通过Node-Api编写简单插件入门
Node.js插件编写(1)-通过Node-Api编写简单插件入门原创 2021-12-24 15:55:00 · 1198 阅读 · 0 评论 -
算法有序数组合并---在空间足够的情况下,进行O(n)的合并 并且移动次数最小
最近看一本书上有一个面试题, 原题目是 有两个递增数组 A1 A2, A1的内存空间足够长, 现在要求合并 A2到A1,并且要求移动次数最小 ,面试的时候 我们尽量要以 最高效的方式完成 ,下面是此题 O(n)解法。void ReplaceCharInEnoughMemory(char*pStr){ if(pStr==0) return ; //计算空格原创 2015-11-11 14:57:33 · 1899 阅读 · 0 评论 -
关于有序二维矩阵查找和字符串替换的两道算法题
最近看一本书上写到的两个面试题 于是实现了一下 感觉思路很好,大牛略过 :1、对于一个二维矩阵,从左到右 从上到下 都是递增的,如何判断一个值是否在矩阵内部?(C实现 实现复杂度 O(n))bool FindInTwoDimensionalMatrix(int*pMatrix,int iRows,int iCols,int iFindVal){ bool bFind=false ;原创 2015-11-11 10:45:36 · 1535 阅读 · 0 评论 -
C++实现一个线程安全的单例工厂
我们见到经常有人用 static 局部对象的方式实现了类似单例模式,最近发现一篇文章明确写明 编译器在处理 static局部变量的时候 并不是线程安全的 !!!http://blogs.msdn.com/b/oldnewthing/archive/2004/03/08/85901.aspx 于是实现了一个单例工厂 并且是线程安全的#ifndef SINGLETONFACTORY_H#原创 2015-11-07 19:56:22 · 2544 阅读 · 0 评论 -
菜鸟学算法----改进后的欧几里得算法
对于正整数 a和b 利用欧几里得算法可以得出 一个最大公因数 , 改进后的算法满足 最大公因数 q=xa+yb ;那么我们如何求出 a和b呢 。书上是这么写的 那么我们用代码把他实现出来, 向大家推荐一本书《The Art Of Computer.Programmer》 第一篇的数学部分 真心的枯燥 我选择的方式 是 适当的囫囵吞枣 对于这一样 ,但是对于其中讲述的算法原创 2015-01-31 16:25:13 · 1476 阅读 · 0 评论 -
菜鸟学算法--简单的交换和最大公约数算法入门篇
工作之后我们大部分的时间实在研究如何如何学习一门语言 如何如何掌握一门技术,但是作为编程的本质 数据结构和算法 我们慢慢的忽略了 。工作后的很多程序员真的没有大学生一样的时间 去静下心来去增加自己的底蕴,这是我深有体会的事情当然我这里指的是和我有累死感觉的人。学习是一个过程,从简入繁 一贯如此,记录下来只为 记录自己的点点滴滴。#include "stdafx.h"#include原创 2015-01-31 14:15:36 · 1412 阅读 · 1 评论 -
C++数据结构与算法------------二叉树的2种创建
1、以数组为存储结构的二叉树 模板+完全二叉树(适合完全二叉树存储)/*二叉树的线性存储 ..用数组 作为存储结构 ,需要对二叉树 按照层次进行编号 。适合完全二叉树和满二叉树。编号就是二叉树数组的值 这里的节点要按照层次 为二叉树的每个节点编号 如果节点编号为i 那么父节点 i/2 子节点 2i 2i+1 我们在这里操作以数组存储的原创 2012-04-30 19:25:01 · 1459 阅读 · 0 评论 -
二叉树的创建以及利用迭代实现中序、先序、后序遍历、清空
/*二叉链表就是以链表为存储结构存储二叉树 ,我么要像编号 完全二叉树一样 存储 普通的二叉树 。 节点的声明如下 node */#include using namespace std ;typedef struct node{ int data ; node* lChild ; node* rChild ;}BTreeNode,*LinkTree ; v原创 2012-04-30 23:01:19 · 3769 阅读 · 0 评论 -
数据结构-----哈夫曼树的构造以及遍历
/*根据Huffman树的构造原理进行构造 ... 哈夫曼树在编码压缩的领域有很好的应用,利用Huffman进行编码可以保证数据传输的无二义性 。但是要注意的是 对于出现频率大的数据我们应该尽量放在离根节点近的地方进行编码 ,出现频率小的数据我们可以放在距离根节点小的地方。这样可以提高数据的传输效率 。*/#include "stdio.h"#include "malloc.h原创 2012-05-17 01:06:53 · 15612 阅读 · 3 评论 -
二叉搜索树的非递归创建和搜索
#include "stdio.h"typedef struct node{ int data ; node*lChild ; node*rChild ;}TreeNode ;void Insert(TreeNode**root,int data) //向二叉查找树中插入元素 采用非递归思想{ TreeNode * p=*root ;//获得根结点 Tr原创 2012-05-19 00:48:37 · 3558 阅读 · 0 评论 -
二叉搜索树非递归方式删除节点
#include "stdio.h"#include "iostream.h"typedef struct node{ int data ; node*lChild ; node*rChild ;}TreeNode ;void Insert(TreeNode**root,int data) //向二叉查找树中插入元素 采用非递归思想{ TreeNode * p原创 2012-05-20 00:46:04 · 3612 阅读 · 2 评论 -
Lua中table内建排序与C/C++/Java/php/等内排序算法的排序效率比较
Lua这类脚本语言在处理业务逻辑作为配置文件的时候方便省事 但是在大量需要 运算的地方就显得略微不足 按照 Lua内建排序算法 对比C++排序算法测试 Lua解释器的排序算法在LDT下,运行速度比通过C/C++内嵌解释器调用的快4倍之多 而C/C++的快速排序速度又是Lua 内嵌排序算法的速度的10倍之多,起码在我的电脑上 看到的是这样的效果。Lua table默认内建排序算法原创 2014-12-06 23:24:37 · 3872 阅读 · 2 评论 -
内嵌汇编与C/C++实现的冒泡排序,快速排序算法排序500W个数据对比
内嵌汇编是微软为了提高程序的优化能力而嵌入在VC中的,这意味着你如果在C/C++程序中使用了 inline asm进行 汇编 那么 就注定无法跨平台的,对于没有汇编基础的同学是需要去学习下 的,因为有些时候C++程序员是不得不懂这些东西的 。内嵌汇编 在C/C++中 通过_asm{ ...}_asm ....引入汇编代码,可以使程序自陷入汇编状态,MMX汇编指令被原创 2014-12-08 18:37:26 · 4081 阅读 · 1 评论