![](https://img-blog.csdnimg.cn/7a8f3ddd69be418991a4cd13fd8a482a.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法编程
文章平均质量分 76
数据结构、算法、编程语言等
YoungerChina
目前从事存储与计算相关的架构设计和研发管理工作
展开
-
【Go编程】“私有元素”和“公有元素”的访问规则
以下变量和函数均以大写字母开头,表示可以从任何位置访问;以下变量和函数均以小写字母开头,表示只能在包内调用;原创 2024-04-08 10:32:11 · 147 阅读 · 0 评论 -
布隆过滤器技术原理及应用实战
在我之前实现的个人项目——分布式定时器 xtimer 中就使用到了布隆过滤器作为任务幂等性校验的辅助工具.该项目详细介绍见文章——基于协程池架构实现分布式定时器 XTimerxtimer 架构图如下:在 xtimer 中,定时任务的实际执行聚焦在执行器 executor 模块,是由上游 trigger 模块异步启动的,只能通过一种类似于 ack 的分片过期时间延长操作,保证到定时任务满足 at least once 的语义,但无法做到 exactly once 的语义.转载 2023-09-25 19:12:58 · 1613 阅读 · 0 评论 -
安装和配置JAVA环境
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。...原创 2022-08-18 18:38:13 · 1187 阅读 · 0 评论 -
Python 开源项目
转自博客园的“闲坐敲棋”SQLAlchemy——数据持久层框架简介 SQLAlchemy 主要由两部分组成,一个 SQL 工具包和一个关系对象映射(ORM),它能让开发者完全发挥出 SQL 的灵活性与强大的能量。他实现了一整套企业级持久层模式,可以通过简单而 Pythonic 的接口,进行高效率和高性能的数据库访问。SQLAlchemy 的 ORM 遵从 DataMapping...原创 2012-07-07 14:54:48 · 1657 阅读 · 0 评论 -
subprocess模块
subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程。在使用过程中,可以根据需要来从中选取一个使用。 另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信。...原创 2016-07-17 12:14:23 · 1985 阅读 · 0 评论 -
PYTHON代码审查工具
了python相关代码的审查、覆盖等工具原创 2022-07-09 22:54:48 · 1299 阅读 · 0 评论 -
Python中字典和列表的索引效率
Python中字典和列表的索引效率原创 2018-07-26 19:28:31 · 14241 阅读 · 4 评论 -
key-value数据库的一种实现
关于KV存储 什么是NOSQLNoSQL,指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 Key_value数据库的物理组成存储系统主要由索引文件(.idx)和存储文件(.mmap)组成,...转载 2016-08-07 15:53:02 · 1909 阅读 · 0 评论 -
【整理】Python编码规范指导
代码更多是用来读而不是写。本指南旨在改善Python代码的可读性。风格指南强调一致性。项目、模块或函数保持一致都很重要。原创 2017-07-08 16:05:55 · 2395 阅读 · 5 评论 -
【整理】Python 单元测试框架 - PyUnit
Python单元测试框架(The Python unit testing framework),简称为PyUnit, 是Kent Beck和Erich Gamma这两位聪明的家伙所设计JUnit 的Python版本。 而JUnit又是Kent设计的Smalltalk测试框架的Java版本。它们都是各自语言的标准测试框架。此文档仅阐述针对Python的单元测试PyUnit的设计与使用。如需单元...原创 2017-06-07 22:44:15 · 2112 阅读 · 0 评论 -
【整理】PYTHON代码审查工具
这两天看了python相关代码的审查、覆盖等工具,先记录下来,后边再总结其用法。python的review工具Review boardReview board 是一个 基于web 的工具,主要设计给django 和python的用户。Review board 可以帮助我们追踪待决代码的改动,并可以让Code-Review更为容易和简练。尽管Review board 最初被设计在VMware项目中使用原创 2017-06-07 22:23:53 · 4489 阅读 · 0 评论 -
python脚本退出后 不应该为负值
Python sys.exit的退出代码不会为负值原创 2016-09-17 14:22:46 · 1289 阅读 · 0 评论 -
python中os.system()的返回值
python中的os.system(cmd)的返回值与linux命令返回值(具体参见本文附加内容)的关系原创 2016-09-17 14:01:19 · 35284 阅读 · 0 评论 -
分治法 - 合并算法设计
分治法 - 合并算法设计何为分治法?分治策略:将圆问题划分为n个规模较小而结构与圆问题相似的子问题;地鬼地解决这些子问题。然后合并结果,即得到原问题的解。分治模式每一层的递归上都有三个步骤:分解:将原问题分解为一系列子问题;解决:递归地解决各子问题。若子问题较小,则直接求解。合并:将子问题的解合并为原问题的解。一. 问题描述:由n个数组成的序列a1,a2, …, a原创 2012-03-08 21:50:47 · 1431 阅读 · 0 评论 -
ICDM评选:数据挖掘十大经典算法
原文地址:http://blog.csdn.net/aladdina/article/details/4141177 国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaB转载 2013-09-19 22:14:07 · 2426 阅读 · 0 评论 -
数据挖掘经典算法
Classification============== #1. C4.5Quinlan, J. R. 1993. C4.5: Programs for Machine Learning.Morgan Kaufmann Publishers Inc. #2. CARTL. Breiman, J. Friedman, R. Olshen, and C. Stone. Cl转载 2013-09-19 22:15:25 · 1232 阅读 · 0 评论 -
悬挂else引发的问题
这个问题虽然已经为人熟知,而且也并非C语言所独有,但即使是有多年经验的C程序员也常常在此失误过。考虑下面的程序片段:这段代码中编程者的本意是应该有两种主要情况:x等于0以及x不等于0。对于x等于0的情形,除非y也等于0(此时调用函数error),否则程序不作任何处理;对于x不等于0的情形,程序首先将x与y之和赋值给z,然后以z的地址为参数来调用函数f。然而,这段代码实际上所原创 2014-09-22 09:31:51 · 3420 阅读 · 0 评论 -
请为main函数提供返回值
很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( )。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { }is not and never has been C++, nor has it even been C.( vo原创 2014-09-23 13:51:45 · 917 阅读 · 0 评论 -
动态规划 - 装配线调度问题
1 动态规划介绍动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。动态规划通常应用于最优化问题。此类问题可能有很多种可行解。每个解有一个解,而我们希望找出一个最优解(最大值或最小值)。动态规划算法的设计可分为如下4个步骤:(1)描述最优解的结构;(2)递归定义最优解的值;原创 2012-03-17 11:39:27 · 1711 阅读 · 0 评论 -
为什么说B+-tree比B 树更适合实际应用中操作系统的文件索引和数据库索引?
文件索引和数据库索引为什么使用B+树,个人认为:1. 因为文件与数据库都是需要较大的存储——不可能全部存储在内存中,故要存储到磁盘上2. 所谓索引,即是快速定位与查找,那么索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数(B+树相比B树,其非叶子节点占用更小的空间)3. 局部性原理与磁盘预读,预读的长度一般为页(page)的整倍数,(在许多操作系统中,页得大小通常为4k)4. 数据库系统巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入,(由于节原创 2016-04-13 23:56:43 · 3077 阅读 · 0 评论 -
extern用法详解
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案转载 2013-10-30 22:40:30 · 1558 阅读 · 0 评论 -
vector介绍
vector(向量,也可称为容器): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.原创 2016-06-03 22:47:55 · 774 阅读 · 0 评论 -
typedef和define的详细区别
typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。 #define是预处理指令。下面让我们一起来看。typedef是C语言语句,其功能是用户为已有数据类型取“别名”。 例如: typedef int INTEGER; 这以后就可用INTEGER来代替int作整型变量的类型说明了,如: INTEGER原创 2013-08-15 23:04:16 · 1052 阅读 · 0 评论 -
架构设计:生产者/消费者模式
架构设计:生产者/消费者模式一:概述今天打算来介绍一下“生产者/消费者模式”,这玩意儿在很多开发领域都能派上用场。由于该模式很重要,打算分几个帖子来介绍。今天这个帖子先来扫盲一把。如果你对这个模式已经比较了解,请跳过本扫盲帖,直接看下一个帖子(关于该模式的具体应用)。看到这里,可能有同学心中犯嘀咕了:在四人帮(GOF)的23种模式里面似乎没听说过这种嘛!其实GOF那经典的23种模式主要转载 2012-02-12 19:59:44 · 1504 阅读 · 0 评论 -
linux 内核链表练习
linux 内核链表使用案例:链表源码:test_list.c/********************************************** * Author: lewiyon@hotmail.com * File name: test_list.c * Description: test the macroes in the core.h * Date: 2原创 2012-01-02 23:39:37 · 1257 阅读 · 0 评论 -
strlen问题
最近遇到一个strlen问题。 程序代码如下:#include #include int main(int argc, char *argv[]){ int i; char a[1] = {'c'}; for (i = 0; i <= strlen(a) - 2; i++) { printf("i = %d; (strlen(a)-2) = %d;\n",原创 2012-01-14 22:49:33 · 1647 阅读 · 1 评论 -
【整理】七大查找算法
查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。树表查找和哈希查找会在后续的博文中进行详细介绍。转载 2016-06-10 09:22:54 · 1224 阅读 · 0 评论 -
【整理】hash算法原理及常见函数
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。原创 2016-05-23 10:26:52 · 1456 阅读 · 0 评论 -
[python]如何调用shell命令
在近期的工作,需要使用python实现一解决方案,中间经常用到shell命令,就进行了一些总结.原创 2016-07-17 11:15:26 · 2379 阅读 · 0 评论 -
B-tree(B树)介绍
当查找的文件较大,且存放在磁盘等直接存取设备中时,为了减少查找过程中对磁盘的读写次数,提高查找效率,基于直接存取设备的读写操作以"页"为单位的特征。 1972年R.Bayer和E.M.McCreight提出了一种称之为B-树的多路平衡查找树。它适合在磁盘等直接存取设备上组织动态的查找表。一、B-树的定义 一棵m(m≥3)阶的B-树是满足如下性质的m叉树:原创 2012-01-16 23:17:12 · 2816 阅读 · 1 评论