自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 曾经遇到的一个面试题,快速排序用链表实现,算法和以前的相似,需要注意一些细节处理

typedef struct nodes{ int data; struct nodes * next;} node;void add_node(node *first,int data){ node * tmp; if (first != NULL){ tmp =(node *) malloc(sizeof(node)); if (tmp != NULL) { tm

2012-08-31 14:37:54 402

原创 如何编写一个安全的read函数

ssize_t safe_read(int fd, void *buf, size_t count){ ssize_t n; do { n = read(fd, buf, count); } while (n < 0 && errno == EINTR); return n;}我们大多知道在使用read函数时,返回0表示读到文件的末端,返回值大于1表示读到文件的字节数,如果

2012-07-24 15:24:51 859

原创 自律

如何自律:        推迟满足感:对于自己,不要有拖拉的做事习惯,集中注意力,把重要的、困难的工作在最短的时间内解决掉,比如每天工作的时间内,开始上班的时候就将工作时间做一个规划,把困难的工作放在开始。  承担责任:像个男人可以把自己的责任承担起来,在遇到困难时,逃避困难只是带来一时的轻松,困难不会随着自己的逃避而消失,正相反,一个勇敢的人,往往会因为能够克服困难带来更高等级的愉悦。生

2012-07-09 14:59:28 293

原创 数据对齐

char wolf[]="Like a wolf";char *p = &wolf[1];unsigned long l = *(unsigned long *)p;此实例试图从一个并不能指向被4或8整除的地址上载入一个32位或64位的unsigned long 类型的数据可能会引起错误,在一些平台上访问没有对齐的数据会陷入一种错误

2012-06-19 17:18:30 300

原创 数组和指针寻址

本节讲述的是指针是如何汇编的。1:数组和字符数组是如何保存的先来看看C语言源码#includeint main(){ int int_a[5]={1,2,3,4,5}; char char_a[] = "hello world"; char * char_pa = "hello world";}以下是汇编后的代码; File d:\ѧ

2012-04-26 23:02:20 7639

原创 第七章 变量的位置

本文介绍C/C++中变量存储的位置:包括 全局变量,静态局部变量,堆变量#includeint g_variable1 = 12345;int g_variable2 = 45678;int main(){ int one =1,two =2; scanf("%d,%d",&one,&two); printf("%d,%d\n",one,two); scanf("%d,%

2012-04-24 23:31:57 411

原创 第六部分 函数的工作原理一

写这篇文章得益于我最近钱林松、赵海旭写的新书《C++反汇编与逆向分析》,一直希望学习相关的技术,但是一直没有开始,看到此书后,激发起了我以前的兴趣,最近一直在读这本书,今日将我了解到的知识分享给大家。首先让我们来看一段最简单的代码#includevoid func(int first, int second){}int main(){int first =

2012-04-24 10:38:04 520 2

原创 tr的使用

本原创文章属于《Linux大棚》博客,博客地址为http://roclinux.cn。文章作者为rocrocket。为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅。===[正文开始]tr是translate的简写,亦即翻译,但是

2011-07-31 19:32:03 440

原创 POJ 3264

<br />动态规划解决方案,<br /> <br />#include<iostream>#include<cstring>#include<cmath>#include<cstdio>using namespace std;const int maxn=50005;const int maxi=17;int height[maxn];int min_height[maxn][maxi];int max_height[maxn][maxi];int M,N;

2011-06-02 10:50:00 475

原创 Dijkstra

<br /><br />Dijkstra算法是很有代表性的最短路算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。<br />其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知。<br />初始时,S中仅含有源。设u是G的某一个顶点,把从源到u且中间只经过S中顶点的路称为从源到u的特殊路径,并用数组dist记录当前每个顶点所对应的最短特殊路径长度。Dijkstra算法每次从V-S中取出具有最短特殊路长度的顶点u

2011-05-30 20:31:00 340

原创 顺序排序

<br /><br />#include<iostream><br /> <br />int partion(int a[], int s, int e)<br />{<br />int key = a[s];<br />int temp ;<br />while (s < e)  {<br />while ( s < e && a[e] >= key) e--;<br /><br />if ( s < e ) <br />a[s++] = a[e]; <br /><br />while ( s < e &

2011-03-13 22:07:00 292

原创 动态规划背包问题自己的理解:

<br /> <br />01背包问题的最优子问题是:<br />f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}<br />已知前i-1件商品的最优化结果;那么在添加第i件商品时的最优化结果可以由上式表示。<br />多重背包 :转化为01问题<br />另一种好想好写的基本方法是转化为01背包求解:把第i种物品换成n[i]件01背包中的物品,则得到了物品数为Σn[i]的01背包问题,直接求解,复杂度仍然是O(V*Σn[i])。<br />但是我们期望将它转化为01背包

2011-03-05 14:57:00 704

原创 微软等数据结构+算法面试100题解答018

<br /><br />核心思想:<br />如果只有一个人;则他就是胜利者;<br />n-1个人的胜利者在n个人中的排序为 (x +m)% n (1)<br />迭代或递归即可得出从1 到 n 个人的胜利者序号<br />例 n =4  m =3<br />i = 1   胜利者序号为 0<br />i = 2   胜利者在两个人的排序 由(1)式可知 变为 (0 + 3) % 2 = 1 所以 两个人中的 第二个人会获得最终的胜利。。<br />...<br />...<br /> <br />#in

2011-01-28 09:58:00 332

原创 字符串匹配 KMP

<br /><br />#include<iostream><br />#define LENGTH 9<br /> <br />char data[]="acabaabaabcacaabc";<br />char comp[]="abaabcac";<br />int  pre[8];<br /> <br />void Compute_Prefix_Function()<br />{<br />    int p=0;<br />    pre[0]=0;<br />    for(int i = 1;

2011-01-26 23:53:00 291

原创 微软等数据结构+算法面试100题014

<br /><br />/*<br />*<br />*  题目:输入一个已经按升序排序过的数组和一个数字,<br />*  在数组中查找两个数,使得它们的和正好是输入的那个数字。<br />*  要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。<br />*  例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。<br /> <br />*  思路:类似快排的partion 部分 从两边开始向中间找<br />   比如有如下数组输入数组1

2011-01-22 19:17:00 293

原创 精选微软等公司经典的算法面试100题009

<br /><br />#include <iostream><br /> <br />int findFirstBig(int data[],int start, int end)<br />{<br />int key = data[end];<br />int i = start ;<br />while( i < end && data[i] <= key )<br />i++;<br />if ( i != end  ){  //find<br />return i;<br />}<br />re

2011-01-21 23:25:00 345

原创 微软等数据结构+算法面试100题005

<br /><br /> <br />#include <iostream><br /> <br />void downHeap(int heapArray[], int lengtArray, int key)<br />{<br />int temp = key;<br />int flag = 0;<br />int maxkey ;<br />while ( temp <= (lengtArray-2) / 2 ) { <br />if ( temp*2 + 2 <= lengtArray -1 )

2011-01-20 19:44:00 278

原创 微软等数据结构+算法面试100题019

<br /><br />#include <iostream><br /> <br />int Fibonacci(int n)<br />{<br />if ( n == 0) {<br />return 0 ;<br />}<br />if ( n == 1) {<br />return 1 ;<br />}<br />int first = 0 ;<br />int second = 1 ; <br />int third ;<br />for (int i = 2 ; i <=  n ; i++)

2011-01-19 21:53:00 417

原创 微软等数据结构+算法面试100题004

<br /><br />#include <iostream><br />typedef struct BinaryTreeNode // a node in the binary tree<br />{<br />int m_nValue; // value of node<br />BinaryTreeNode *m_pLeft; // left child of node<br />BinaryTreeNode *m_pRight; // right child of node<br />}BTNod

2011-01-19 21:32:00 307

原创 动态规划1——之工厂生产线问题

<br /><br />#include <iostream><br />#define LINELENGTH 6<br /> <br />int line_1[] = {7, 9, 3, 4, 8, 4} ;<br />int line_2[] = {8, 5, 6, 4, 5, 7} ;<br />int time_1[] = {2, 2, 1, 2, 2, 1} ;<br />int time_2[] = {4, 2, 3, 1, 3, 4} ;<br />int best_line_1[6] = {

2011-01-19 00:18:00 1138

原创 微软等公司数据结构面试题3

#include class Array{public:Array(int a[],int length):m_array(a),m_length(length) {}void Findbest();void Print();private:int  *m_array;int m_left;int m_right;int m_length;int m_nearLeft;int m_nearRight;int m_max;int m_nearMax;};void Array::Findbest(){m_lef

2011-01-19 00:01:00 441

原创 微软等公司数据结构面试题1

 tree.htypedef struct BSTreeNode {int m_value;struct BSTreeNode *m_left ;struct BSTreeNode *m_right;} bstTreeNode;class ActTree{public:ActTree();void InsertValue() ;void DeleteValue() ;void Sort();void PrintTree();void PrintNode(bstTreeNode *node);void C

2011-01-17 19:51:00 341

原创 我的排序算法

复杂度为n2的算法/* 冒泡排序 * input int数组 length of 数组  * 输出 在int数组上原地排序  */void  bubble(int a[], int n){      int i,j,temp;           for (i = 0; i            for ( j= n - 1; j > i; j-- ) {                if (a[j]                     temp = a[j-1];                  

2010-12-30 10:44:00 248

原创 C++传参数的时关于引用和传值

在数据结构设计中,经常会在已有的数据结构上进行修改,在初学者学习的时候常常会发现创建的数据结构不听指挥,在调试时发现明明设置了关键字的值,但是在另一个函数中调用的时候则无法调用,比如下面l两段不同的代码.void insert(Tree &tree, node * t){     if (tree.empty){       tree.empty = false;       tree.root  = t;         return ;    }     //node * parent = tree.r

2010-12-29 15:52:00 374

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除