摘要: 摘自:https://blog.csdn.net/bigtree_3721/article/details/82945924 一般人见到这种题目,立马就会想到指针交换。是的,大家被指针交换的题目做多了,形成思维定势了。对于这道题,我们完全可以利用值交换来达到排序的目的。当然,怎么值交换? 很多人得第 阅读全文
posted @ 2022-04-14 10:36 simon1024 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 优点: (1)拉链法处理冲突简单,且无堆积现象,即非同义词决不会发生冲突,因此平均查找长度较短; (2)由于拉链法中各链表上的结点空间是动态申请的,故它更适合于造表前无法确定表长的情况; (3)开放定址法为减少冲突,要求装填因子α较小,故当结点规模较大时会浪费很多空间。而拉链法中可取α≥1,且结点较 阅读全文
posted @ 2020-10-20 10:11 simon1024 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 代码优化 1.内存优化:通过内存池,对象池减少内存的申请释放;thread local;增加缓存命中率; 2.锁的优化:读写锁,互斥锁,自旋锁,无锁队列,通过分片的方式实现无锁化; 3.算法优化:去重算法,排序算法 4.线程优化:减少线程数,减少线程切换,线程绑核,关键耗时操作加到并发数; 流水线优 阅读全文
posted @ 2020-10-16 09:49 simon1024 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 原文:https://www.sohu.com/a/120595688_465979 Vector 就像是 C++ STL 容器的瑞士军刀。Bjarne Stoutsoup 有一句话 – “一般情况下,如果你需要容器,就用 vector”。像我们这样的普通人把这句话当作真理,只需要照样去做。然而,就 阅读全文
posted @ 2018-07-04 21:15 simon1024 阅读(12847) 评论(0) 推荐(0) 编辑
摘要: 1. 进程的状态,僵死进程 http://blog.csdn.net/nilxin/article/details/7437671 http://baike.baidu.com/link?url=6p9NTARJI51aL6dokyYcZbvydGMDjCTIO2NjCZc0mBtGKSo8ESRl 阅读全文
posted @ 2017-06-05 07:23 simon1024 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 示例代码对以下两种情况进行了说明: 1. 继承时改变虚函数的权限; 2. 私有继承; 阅读全文
posted @ 2016-11-06 11:09 simon1024 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题目:从源字符串中删除给定的字符串“ab”,如源字符串为“fbaabbcdab”,删除“ab”后为“fbcd”。要求:不能使用string,不用递归,时间复杂度O(n)。分析:此题借鉴微软的一道面试题,采用快慢指针实现一次扫描完成删除操作。与微软那道题目不同的是,此题的慢指针存在回退的情况。void deleteab(char* str){ if (str == NULL) return; char* s = str; char* f = str+1; //标兵 char pacer = '0'; while( *s!='\0' ) { if( *s!=' 阅读全文
posted @ 2013-08-25 16:23 simon1024 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 待写 阅读全文
posted @ 2013-08-14 11:14 simon1024 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 题目:列出九宫格键盘输入的所有字母组合思路:将字母的组合看成k进制的数,列出字母组合的过程即为对数进行加法运算。#include #include #include char* letter[] = {"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};void listAll(char* input){ int len = strlen(input); int total = 1; i 阅读全文
posted @ 2013-08-09 08:19 simon1024 阅读(386) 评论(0) 推荐(0) 编辑
摘要: bool BinTree::is_avl(BintreeNode *r, int& height){ if (r == NULL) { height = 0; return true; } int hl,hr; bool is_avl_left = is_avl(r->get_left(), hl); if ( !is_avl_left ) return false; bool is_avl_right = is_avl(r->get_right(), hr); if ( !is_avl_right ) return false; int max = hl>hr ? 阅读全文
posted @ 2013-08-09 08:17 simon1024 阅读(179) 评论(0) 推荐(0) 编辑