基础算法
文章平均质量分 96
开心乐源
十余年的c/c++语言程序开发经验,从事过证券行情软件开发,人工智能项目工程化,区块链智能合约开发。熟悉多种开发环境,熟悉常见的网络协议,热衷于区块链/人工智能/互联网金融等领域产品开发,希望计算机技术可以更好的服务社会,如果有机会也愿意从事计算机项目管理类工作。乐于学习新知识新技术,不局限于使用一项技术,更注重了解技术背后的原理。
展开
-
Git 的内部工作原理
通过本次分享学习 Git 的内部工作原理和实现方式。学习这部分内容对于理解 Git 的用途和强大至关重要。首先要弄明白一点,从根本上来讲 Git 是一个内容寻址(content-addressable)文件系统,并在此之上提供了一个版本控制系统的用户界面。原创 2022-11-28 09:08:24 · 1247 阅读 · 0 评论 -
Linux 实时信号程序中锁的探索
原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-signallocks/前言Linux 下的信号分为可靠信号和不可靠信号,或称为实时信号和非实时信号,对应于 Linux 的信号值为 1-31 和 34-64。对于他们的分类以及应用的时的区分并不在本文的讨论范围之内,读者可参考文献 1,对其应用做初步的了解。本转载 2015-02-04 10:39:32 · 1008 阅读 · 0 评论 -
基于连接矩阵的无向图最短路径Dijkstra算法
#include enum { maxdist = 999,};void Dijkstra(int begin, int end){ int n = 5; int map [5][5] = { 0, 1, maxdist, maxdist, maxdist, 1, 0, maxdist, 1,原创 2013-09-17 15:53:33 · 1467 阅读 · 0 评论 -
8bit采样声音数据的音量计算
float calcSoundVol(IN void * pBuf, int nlen){ // 计算该采样率下的最大值 float maxVol=pow(2.0f,sampleBits-1)-1; switch(sampleBits) { case 8: // 该例子只处理8bit采样的情况 { f原创 2013-05-16 17:01:54 · 1665 阅读 · 0 评论 -
智能指针一个简单例子
/** The Code Project Open License (CPOL) 1.02**/class RC{private: int count; // Reference countpublic: void AddRef() { // Increment the reference count count++;原创 2013-04-23 15:29:13 · 1061 阅读 · 0 评论 -
ringbuf的一个简单实现
/* Opaque buffer element type. This would be defined by the application. */typedef struct { void * buff; } ElemType; /* Circular buffer object */typedef struct { int size; /* maximu原创 2013-04-23 15:31:00 · 2182 阅读 · 0 评论 -
华为机考试题
单链表反置void sor(Node **head){ if (!head) return ; // 参数无效 Node * cur = *head; if (!cur || !cur->next) return ; // 列表为空,或者只有一个节点 // cur // | // V // node1原创 2011-10-18 22:44:22 · 1497 阅读 · 0 评论 -
实时系统中的优先级翻转问题
由于共享访问临界资源的问题,实时系统的优先级会出现翻转,导致低优先级的某个进程会比高优先级的某个进程优先执行。这是个问题,严重可能导致关键进程迟迟不能执行,系统崩溃。有2个方法可以解决这个问题,那就是“升级”。1,优先级继承;2,优先级天花板.情景:任务t1,t2,t3的优先级分别是p1,p2,p3; p1>p2>p3; t3占用打印机正在打印文档,中断到来原创 2012-01-07 15:30:23 · 1773 阅读 · 0 评论 -
缓冲区同步读写
程序设计中经常用到缓冲队列,多个写入线程,多个读取线程,同时操作一个缓冲队列,需要信号量和互斥量等进行同步。#pragma once#define TVUP_API#ifdef _WIN32#include typedef HANDLE ThreadHandle;typedef HANDLE MutexHandle;typedef HANDLE Semaph原创 2012-08-21 09:46:34 · 1495 阅读 · 0 评论 -
Java广度优先搜索
import java.util.LinkedList;public class Bfs { public static void main(String [] args) { int n = 4; double [][] matrix = { {0, 1, 0, 0}, {1, 0, 0, 0}, {0, 0, 0,原创 2011-07-16 13:01:56 · 3093 阅读 · 4 评论 -
单链表线程安全性讨论
标准库里面的vector,list都没有声明是线程安全的,在多线程读写的时候,一般都需要使用临界区,读写锁等辅助手段。如果一个队列有以下限制:1, 只在尾部追加数据;2, 可以从任何位置开始遍历;3, 以链表(node * next)的形式存储;4, 队列的节点不可以删除(有些应用场合需要这样的数据结构,比如,股票的逐笔成交队列)。那么,在不加锁的情况下,在原创 2011-08-01 20:05:37 · 2597 阅读 · 0 评论 -
递归算法
/* * 待排序的数组,算法输入 */int arrIntegers[10] = { 0, 3, 1, 2, 5, 4, 8, 7, 9, 6};/* * 辅助存储空间 */int tempIntegers[10];递归排序:从数组中间划分数组为2个子数组,递归调用归并排序,然后合并(排序过程发生在合并时候)2个子数组。辅助存储空间为n。原创 2012-01-09 00:52:36 · 1466 阅读 · 0 评论 -
循环冗余校验算法CRC32
uint32 crc32_tab[] = { 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cb原创 2012-11-23 10:49:23 · 1566 阅读 · 0 评论