随笔分类 - c/c++
摘要:一个与C++库函数不相上下的QuickSort (言过其实了,C++ STL的Sort实现用的是Introsort,是快速排序的变种,主要是递归过深的时候自动转换为堆排或插入排序(是堆排还是插入排序还要视具体实现而定),可以保证最坏情况下还是O(nlogn),并且充分使用了尾递归优化(快排最后不是两个递归吗?最后一个递归可以不必真的递归,可以像gcd算法一样通过迭代参数来改善运行速度),STL快...
阅读全文
摘要:long atol(const char *nptr){ int c; /* current char */ long total; /* current total */ int sign; /* if ''-'', then negative, otherwise positive */ /* skip whitespace */ while ( isspace((int)(unsigned char)*nptr) ) ++nptr; c = (int)(unsigned char)*nptr++; sign = c; if (c == ''
阅读全文
摘要:有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。 问题: 1、如何判断一个链表是不是这类链表? 2、如果链表为存在环,如何找到环的入口点? 解答: 一、判断链表是否存在环,办法为: 设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)程序如下: bool IsExitsLoop(slist *head){ slis...
阅读全文
摘要:main(int argc,char **argv) argv为指针的指针 argc为整数 char **argv or: char *argv[ ] or: char argv[ ][ ] main()括号内是固定的写法。 下面给出一个例子来理解这两个参数的用法: 假设程序的名称为prog, 1.当只输入prog,则由操作系统传来的参数为: argc=1,表示只有一程序名称。 argc只...
阅读全文
摘要:/为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int TSint64; //typedef unsigned long int TUint64; //ANSI C中规定long long才能表示64位 //参见:http://msdn.microsoft.co...
阅读全文
摘要:设一个64位整型n,各个bit位是1的个数为a个。 比如7,二进制是111,所以a为3。现在给出m个数,求各个a的值。 #include<iostream>using namespace std;int cbit(unsigned long long n ){ int counter = 0; unsigned long long dismark = 1; for (int c=1;c<=64; c++) { if (n&dismark) ++counter; n >>= 1; } return counter;}int main(){ int m; ci
阅读全文
摘要:struct node{ node* next; T value;};方法一:常规方法node* reverse(node*& head){ if ( (head == Null) || (head->next == Null) ) return head;// 边界检测 node* pNext = Null; node* pPrev = head;// 保存链表头节点 node* pCur = head->next;// 获取当前节点 while (pCur != Null) { pNe...
阅读全文
摘要:原文地址 http://blog.csdn.net/deep_explore/archive/2011/01/07/6122784.aspx memset原型 (please type "man memset" in your shell) $ man memset MEMSET(3) Linux Programmer's Manual MEMSET(3) NAME memset - fill memory with a constant byte SYNOPSIS #include <string.h> void *memset(void *s,
阅读全文

浙公网安备 33010602011771号