对于写算法和数据结构程序的小心得

之前一直写业务类的代码,只要分离清晰就可以了,其实都挺简单的。今年写了B-树,B+树,包括现在正在写一个针对大数据的双层索引的范围查询,里面有太多细节需要考虑,虽然理论上看懂了,但是由于需要注意的点太多,光凭大脑记或者文章叙述,很难在写代码的过程中保持思路清晰,混乱的苗头出现常常意味着整体看着让人眩晕,然后不断的梳理,修改,再梳理,再修改。

  一个心得,看懂理论之后,在纸上把各种情况画下来,这样可能很多在看理论的时候没有明确的细节都能有所发现,然后画成树状图,各种情况清晰的罗列出来。这样虽然在设计的时候会花去很多时间,但是远远小于写代码的过程中解决混乱浪费的时间!

  (也许以后还会精进,加油吧!)

时间: 2024-09-30 11:56:29

对于写算法和数据结构程序的小心得的相关文章

算法与数据结构开篇——基础与心得

算法与数据结构开篇 你真的会数据结构吗? 公司开发一个客服电话系统,小菜需要完成客户排队模块的开发,经过三次修改: 第一次:小菜使用了数据库设计了一张客户排队表,并且设置了一个自动增长的整型id字段,来一个用户,就在这张表的末尾插入一条数据,等客服系统一空闲,就将表中最前的的客户提交,然后删除这条记录. 实时排队模块,在内存中实现即可,无序用数据库 第二次:小菜用数组变量重新实现了这个功能,害怕数组不够大,选择远大于实际情况的100作为数组长度 数组虽然可以满足一定需求,但是需要考虑溢出问题,以

【算法和数据结构】_13_小算法_双链表

没什么新的内容,把自己写的练习代码贴出来,供大家批判. 1 /* 2 本程序用来测试非线性存储结构:双链表 3 */ 4 5 6 #include <stdio.h> 7 #include <stdlib.h> 8 9 10 //**************************************************0 11 // 定义双链表数据结构 12 struct dbllink 13 { 14 char data; 15 struct dbllink* preN

【算法和数据结构】_14_小算法_Blank字符替换

1 /* 2 本程序用来将输入的制表符替换为\t, 而将退格替换为\b, 3 将反斜杠替换为\ 4 */ 5 6 #include <stdio.h> 7 #include <stdlib.h> 8 9 typedef struct node 10 { 11 char Input; 12 struct node* next; 13 }NODE; 14 15 16 int GetLine(NODE *head); 17 int Transfer(NODE *head); 18 voi

【算法和数据结构】_15_小算法_打印EOF的值

/* 本程序打印EOF的值 */ #include <stdio.h> int main(int argc,char* argv[],char* env) { printf("EOF = %d",EOF); getc(stdin); return 0; }

【算法和数据结构】_17_小算法_线性结构:顺序表

/* 本程序用来测试数据结构中的线性结构:顺序表 */ #include <stdio.h> #include <stdlib.h> #define LINEAR_MAX_SIZE 64 struct LinearList { int* List; //顺序表指针 unsigned short int ListLen; //顺序表最大的元素个数 unsigned short int CurrentLen; //顺序表当前元素的个数 }; typedef struct LinearL

【算法和数据结构】_18_小算法_源代码打包下载

没有什么新的内容,只是自己的源代码,现在打包提供下载,初学者可以看看,高手请移步,不要耽误您的时间. 下面是一段代码: /* */ //******************************************************0 /* 函数功能: 判断字符串subString是否是字符串String从首字符开始的子串 函数原型: BOOL SubStringMatchHead(char* String,char* subString) 函数参数: char* String:字符

【算法和数据结构】_16_小算法_IntToStr: 将整型数据转换为字符串

1 /* 2 IntToStr: 将整型数据转换为字符串 3 */ 4 5 #include <stdio.h> 6 7 8 void int_to_str(const unsigned long int i_number, char *str); 9 10 int main(int argc,char*argv[]) 11 { 12 unsigned long int i_test; 13 char str[16]; 14 15 i_test=1234567; 16 int_to_str(i

程序员代码面试指南 IT名企算法与数据结构题目最优解 ,左程云著pdf高清版免费下载

下载地址:网盘下载 备用地址:网盘下载 内容简介  · · · · · ·这是一本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现.针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一失.“刷”完本书后,你就是“题王”!__eol__本书采用题目+解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联系,使知识的学习避免碎片化

一个Java写的批量重命名文件小程序

今天学了一下java的File操作,然后乘着兴趣,写了一个可以批量处理文件命名的小程序,小程序还有一些不完美的地方,但胜在有趣.比如可以快捷更改你不想让别人看到的文件之类的...限个人使用,造成数据丢失后果自负哟. import java.io.File; import java.sql.Date; import java.util.Scanner; public class RenameTool { boolean useDefaultName = false; boolean useDefa