![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
ranyongqing
这个作者很懒,什么都没留下…
展开
-
C++怎么获取本机的MAC地址
http://blog.csdn.net/pamchen/article/details/7864072这个博客d转载 2014-05-03 15:14:49 · 585 阅读 · 0 评论 -
Run-Time Check Failure #2分析
Run-Time Check Failure #2 一般是栈被破坏,代码可能有缓冲区溢出一类的问题。Run-Time Check Failure #2 - Stack around the variable 's' was corruptedThis problem is caused when you try to write too much data转载 2014-05-21 23:17:33 · 801 阅读 · 0 评论 -
insertion algorithm-----C++
> File Name: insert.cpp > Author: ryq > Email: ranyongqing@163.com > Created Time: 2014年05月23日 星期五 08时21分44秒 ************************************************************************/#includeus原创 2014-05-23 09:01:09 · 420 阅读 · 0 评论 -
inverse number
一、问题描述先来说明一下什么是逆序数。大家比较熟悉的是自然排序,即数值较小数排在数值较大数的前面。而如果数值较大的数排在了数值较小数的前面则逆序数的个数+1。举个例子如果有序列4,5,2,1,3,则这个序列总共有(4,2), (4,1), (4,3), (5,2), (5,1), (5,3), (2,1)总共7个逆序数。这个问题的需求就是现有一个文件,每行有一个数字(数值小于100000的正整转载 2014-05-23 09:39:22 · 687 阅读 · 0 评论 -
KMP algorithm ---C++
there, I do not speak the algorithm principle. you can ge原创 2014-05-22 20:05:25 · 547 阅读 · 0 评论 -
Boyer-Moore algorithm ---c++
i do not speak the algorithm principle, you can get this knowledge in my blog.原创 2014-05-22 21:15:12 · 558 阅读 · 0 评论 -
heap_sort-----C++
/************************************************************************* > File Name: heap_sort.cpp > Author: ryq > Email: ranyongqing@163.com > Created Time: 2014年05月23日 星期五 11时02分19秒 *******原创 2014-05-23 13:59:17 · 585 阅读 · 0 评论 -
quicksort----C++
/************************************************************************* > File Name: quick_sort.cpp > Author: ryq > Email: ranyongqing@163.com > Created Time: 2014年05月24日 星期六 09时41分48秒 ******原创 2014-05-24 10:33:45 · 427 阅读 · 0 评论 -
Trie树的C++实现
Trie—单词查找树Trie,又称单词查找树、前缀树,是一种哈希树的变种。应用于字符串的统计与排序,经常被搜索引擎系统用于文本词频统计。性质:1.根节点不包含字符,除根节点外的每一个节点都只包含一个字符。2.从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。3.每个节点的所有子节点包含的字符都不相同。优点:1.查询快。对于长度为m的键值,最坏情况下只需转载 2014-06-08 10:06:24 · 449 阅读 · 0 评论 -
算法设计与分析--霍夫曼树编码(C++实现)
问题描述:设需要编码的字符集为{d1, d2, …, dn},它们出现的频率为{w1,w2, …,wn},应用哈夫曼树构造最短的不等长编码方案。Huffman算法:给定实数w1,w2,···,wt且 w1(1)连接w1,w2为权的两片树叶,得一分支点,其权为w1+w2 ;(2)在w1+w2, w3+···+wt中选出两个最小的权,连接它们对应转载 2014-05-26 09:51:50 · 2313 阅读 · 0 评论 -
编程之美——字符串移位包含问题
编程之美——字符串移位包含问题#include#includeusing namespace std;bool cycle(string res, string des){ int res_size = res.size(); int des_size = des.size(); if(res_size < des_size) return false; for(in原创 2014-08-08 15:16:47 · 598 阅读 · 0 评论 -
编程之美—— Combination Sum
递归思想:#include#include#include#includeusing namespace std;vector > m_vecRet;void combination(const vector &num, size_t idx, vector &curr, int target){ if (target == 0) { m_vecRet.push_原创 2014-08-08 21:05:49 · 487 阅读 · 0 评论 -
C++四种cast操作符
C 风格(C-style)强制转型如下:(T) expression 或T(expression) //函数风格(Function-style)两种形式之间没有本质上的不同。对于具有转换的简单类型而言C 风格转型工作得很好。然而,这样的转换符也能不分皂白地应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:reinterpret_cast, stati转载 2014-09-23 08:36:43 · 443 阅读 · 0 评论 -
C++ 初始化列表
何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。struct foo{ string name ; int id ; foo(s转载 2014-09-23 08:56:07 · 335 阅读 · 0 评论 -
求连续子数组的最大和
http://blog.csdn.net/v_JULY_v/article/details/6444021#前奏希望更多的人能和我一样,把本狂想曲系列中的任何一道面试题当做一道简单的编程题或一个实质性的问题来看待,在阅读本狂想曲系列的过程中,希望你 能尽量暂时放下所有有关面试的一切包袱,潜心攻克每一道“编程题”,在解决编程题的过程中,好好享受编程带来的无限乐趣,与思考带来的无限激情。-转载 2014-09-14 19:51:33 · 475 阅读 · 0 评论 -
Trie树 --- 查找,删除,搜索
Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。一.Trie树的原理 利用串构建一个字典树,这个字典树保存了串的公共前缀信息,因此可以降低查询操作的复杂度。 下面以英文单词构建的字典树为例,这棵Trie树中每个结点包括26个孩子结点,因为总共有26个英文字母(假设单词都是小写字母组成)。转载 2014-09-26 10:06:37 · 1177 阅读 · 0 评论 -
BM25算法[转]
BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document, regardless of the inter-relationship between the query terms within a docum转载 2014-10-09 23:18:07 · 694 阅读 · 0 评论 -
四种进程或线程同步互斥的控制方法
很想整理一下自己对进程线程同步互斥的理解。正巧周六一个刚刚回到学校的同学请客吃饭。在吃饭的过程中,有两个同学,为了一个问题争论的面红耳赤。一个认为.Net下的进程线程控制模型更加合理。一个认为Java下的线程池策略比.Net的好。大家的话题一下转到了进程线程同步互斥的控制问题上。回到家,想了想就写了这个东东。 现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的。转载 2014-11-21 21:58:32 · 563 阅读 · 0 评论 -
Windows 各种计时函数总结
本文对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在Windows系统,也可以用于Linux系统。在Windows系统下三种,使用Windows提供的API接口timeGetTime()、GetTickCount()及QueryPerf转载 2014-05-20 18:45:20 · 475 阅读 · 0 评论 -
从m连乘到n,判断结果0的个数
//从m连乘到n,判断结果0的个数//主要就是找10倍数的个数,以及乘积只有偶数*5才能得到0的特征,那么就找m与n之间5的个数以及偶数个数,取最少的那个。#include using namespace std;int numofzero(int m, int n){ int numoften = 0; int numoftwo = 0; int numoffive = 0;原创 2014-05-14 20:41:13 · 1319 阅读 · 0 评论 -
进程和线程的区别
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程转载 2014-05-12 13:29:53 · 444 阅读 · 0 评论 -
minimum_window_substring ——leetcode
题目:Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).For example,S = "ADOBECODEBANC"T = "ABC"Minimum window原创 2014-05-03 21:33:47 · 443 阅读 · 0 评论 -
买书问题——编程之美1.4
//买书问题,//如果一种书籍五册,单独买一册8元,买两册不同的打95折,买三册不同的书籍9折,买四册不同的书籍8折,买五册不同书籍75折,问怎么买书最便宜。//比如买2本一册,2本2册,2本三册,1本4册,1本5册//那么最优打折方式就是:分两次购买,一本一册,一本二册,一本三册和一本四册,然后就是剩下的书籍#include #include #include using nam原创 2014-05-14 22:50:46 · 488 阅读 · 0 评论 -
给你1亿带有信息头的数据,然后再给你10万条数据头,然后得出满足这10万信息头的数据个数
给你1亿带有信息头的数据,然后再给你10万条数据头,然后得出满足这10万信息头的数据个数原创 2014-05-14 20:45:18 · 1138 阅读 · 0 评论 -
有一个母羊,第2年和第4年可以生一头小母羊,在第5年死去,小母羊在它出生的第2年和第4年生小母羊,第5年死去,求第N年有多少个母羊
/*有一个母羊,第2年和第4年可以生一头小母羊,在第5年死去,小母羊在它出生的第2年和第4年生小母羊,第5年死去,求第N年有多少个母羊*/#include using namespace std;int num(int N){ if (N ==0) return 0; if(N == 1) return 1; if(N == 2 || N == 3) return 2;原创 2014-05-14 20:29:18 · 5431 阅读 · 1 评论 -
STL之set和hash_set
set和hash_set是STL中比较重要的容器,有必要对其进行深入了解。在STL中,set是以红黑树(RB-tree)作为底层数据结构的,hash_set是以Hash table(哈希表)作为底层数据结构的。set可以在时间复杂度为O(logN)情况下插入、删除和查找数据。hash_set操作的时间复杂度则比较复杂,这取决于哈希函数和哈希表的负载情况。下面列出set和hash_set的常用函数:转载 2014-05-19 09:04:16 · 610 阅读 · 0 评论 -
STL之全排列
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。用C++写一个函数, 如 Foo(const char *str),转载 2014-05-19 09:37:45 · 423 阅读 · 0 评论 -
用户态和内核态的概念区别
究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子:1)例子C代码1. void testfork(){ 2. if(0 = = fork()){ 3. printf(“create new process su转载 2014-05-12 12:47:26 · 726 阅读 · 0 评论 -
STL之全排列
本文将介绍三个有趣的随机问题,分别是随机重新排列、从文件中随机取一行数据、生成N个随机数。 一.随机重新排列将一个序列打乱并对其进行随机的重新排列,关键在于每种序列的被选择概率要一样,不然有失“公平”。现在让我们来寻找如何保证每种序列被选择的概率一样大的算法。首先假设这个数组只有二个元素,设数组a为{1, 2},显然这个数组只有二种可能的排列,要么是{1,2}要么是转载 2014-05-19 09:53:18 · 410 阅读 · 0 评论 -
STL系列——堆(heap)
下面再介绍STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap():头文件 #include 下面的_First与_Last为可以随机访问的迭代器(指针),_Comp为比较函数(仿函数),其规则——如果函数的第一个参数小于第二个参数应返回true,否则返回false。建转载 2014-05-19 08:40:00 · 516 阅读 · 0 评论 -
定义函数时,后面加const意义
定义函数的时候,后面加const表示原创 2014-05-12 10:01:02 · 5128 阅读 · 1 评论 -
如何在有限的内存的情况下,找到大量数据中重复查询次数最多的语句
//500K内存,100万条数据,寻找里面重复查询次数最多的记录//思想显示对100万条数据分在不同的文件中,但是在分文件中的时候,要对起进行一定处理,分到对于的文件中,比如分成100个//文件,那么对每一条string进行hash得到的整数值%100,这样就分到不同的文件中了,然后确保其他文件中没有这一条记录,//然后对每一个文件进行处理,采样hash值,然后存入相应的文件中。/原创 2014-04-25 22:40:48 · 2197 阅读 · 0 评论 -
快速排序的优化
基本的快速排序算法 快速排序算法是一种分治技术的内排序算法,其大致思想如下: 首先,在要排序的序列a中选取一个中轴值,而后将a分区成为两个部分,左边的部分b中的元素均小于或者等于中轴值,右边的部分c的元素均大于或等于中轴值。而后通过递归调用快速排序的过程分别对这两个部分进行排序。最后将这两部分产生的结果合并即可得到最后的排序序列。 平均时间复杂度Θ(nlogn),而转载 2014-05-12 23:38:45 · 2468 阅读 · 0 评论 -
为什么虚析构函数的作用
当一个基类的指针删除派生类对象的时候,派生类的析构函数会被diao原创 2014-05-13 19:42:21 · 465 阅读 · 0 评论 -
字符串匹配的Boyer-Moore算法
上一篇文章,我介绍了KMP算法。但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。下面,我根据Moore教授自转载 2014-05-20 08:44:46 · 393 阅读 · 0 评论 -
atoi实现
atoi()函数的功能:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。/* * file_name:my_atoi.c * function:int my_atoi(char* pstr) */ int my_at转载 2014-05-12 23:12:53 · 594 阅读 · 0 评论 -
单链表的逆置-C++实现
typedef int DataType; //类型定义 typedef struct node{ //单链表定义 DataType data; struct node* next; }LinkedNode,*LinkList; void ReverseList(LinkList& ListHead) { cout"Beg转载 2014-05-12 23:16:52 · 513 阅读 · 0 评论 -
字符串KMP算法
字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上转载 2014-05-20 08:43:28 · 490 阅读 · 0 评论 -
各种排序算法
#include "stdafx.h"#include "iostream"using namespace std; // 排序算法大总结 // 共用函数声明void output_array(int data[], int n);void exchange(int *a, int *b); //////////////////////////////转载 2014-11-21 21:45:40 · 555 阅读 · 0 评论