一 算法分析:是理论研究,是关于计算机程序性能和资源利用的研究,特别关注性能; 在程序设计方面,什么是比性能更重要的呢? 例如:正确性,简洁,可维护性,成本,稳定性,软件的健壮性,特性(功能性),模块化(只需要修改局部的代码,避免修改全部代码,以便于影响功能中的简单变化),安全性,可扩展性,用户体验
分类:
编程语言 时间:
2016-03-05 23:29:34
阅读次数:
215
【来信】
在上学期,突然一天一位学长问我要选择哪个方向,指的是算法和一般的开发。我回答他算法,而他说我对语言学的太心急,太快,不像是喜欢算法的,并和我说算法玩玩就好,不要陷得太深,并建议我走一般开发的路子。虽然学长学的挺好,但就比我大一岁,我还是不太相信他说的。后来在学校acm实验室纳新时,我还是按捺加不住入了。
加入后,我开始对算法有了一点了解,并开始学习算法。本来我就是在我校oj上刷...
分类:
编程语言 时间:
2016-03-05 10:22:48
阅读次数:
245
我们把数据结构分为逻辑结构和物理结构 逻辑结构:是指数据对象中数据元素之间的相互关系。 物理结构:是指数据的逻辑结构在计算机中的存储形式。 四大逻辑结构: 集合结构:集合结构中的数据元素除了同属于一个集合外没有其他的相互关系。 线性结构:线性结构中的数据元素之间是一对一的关系。 树形结构:树形结构中
分类:
编程语言 时间:
2016-02-25 15:19:18
阅读次数:
119
链表的构建其实也就是不断插入节点的过程。而节点的插入可以分为头插法和尾插法。头插法就是在头结点后插入该节点,始终把该节点作为第一个节点。尾插法就是在链表的最后一个节点处插入元素,作为最后一个节点。如果想要了解链表的概念和其他链表操作,请参考《数据结构与算法之链表》《C语言实现链表的基本操作》两篇文章。示例代码上传至 https://github.com/chenyufeng1991/HeadIn...
分类:
其他好文 时间:
2016-02-25 13:55:51
阅读次数:
175
基础数据结构与算法 现在有两个不同的JSON,比较复杂,可以参考这里的DEMO中返回的JSON。要比较它们的差异,除了用现成的工具如beyond compare以外,如果我们的机器上没有安装这个工具,能如何较快解决?作为一个程序员,一个个对比是不可行的,对比完也不会有什么收获。我会把之放进Excel
分类:
其他好文 时间:
2016-02-25 09:07:25
阅读次数:
155
链表的分类:(1)单链表头插法:只需要维护一个头结点即可,常用来模拟堆栈;尾插法:需要维护头结点和尾结点,常用来模拟队列。(2)双向链表双向遍历,可以用来保存网页的历史记录等;(3)循环链表经常出现在面试题中,判断链表是否有环。链表的删除方式一:维护两个指针,current(表示当前节点)和previous(表示当前节点的前一个节点)。当current遍历到要删除的元素时,执行previous->...
分类:
编程语言 时间:
2016-02-24 09:40:15
阅读次数:
222
数组的基本概念:数组是最简单最常用的数据结构,但是也有一些注意事项:(1)数组的分配方式以及存储位置;(2)初始化;(3)不同语言中的数组高级定义;(4)多维数组;C/C++中数组分配方式:(1)int a[10];适用于数组长度已知或者对数组长度不敏感的情况,比如定义一个字符串。(2)int *a = (int *)malloc(sizeof(int)*n);用在C中,适用于动态申请数组的长度。...
分类:
编程语言 时间:
2016-02-23 14:39:12
阅读次数:
231
前言 上一篇《数据结构和算法之时间复杂度和空间复杂度》中介绍了时间复杂度的概念和常见的时间复杂度,并分别举例子进行了一一说明。这一篇主要介绍线性表。 线性表属于数据结构中逻辑结构中的线性结构。回忆一下,数据结构分为物理结构和逻辑结构,逻辑结构分为线性结构、几何结构、树形结构和图形结构四大结构。其中,
分类:
编程语言 时间:
2016-02-15 23:59:50
阅读次数:
484
首先说下我推荐学习的路线:C语言->数据结构与算法->数据库->网络->汇编->操作系统->其它。1、C语言C语言的重要性我不多说了,只要你从事计算机方面的学习和工作,对C语言的学习的必要的,它是以后学习的基础。我学习的C语言的时候走了不少弯路,现在想想很苦鳖。我推荐郝斌的《C语言自学教程》和小甲鱼
分类:
其他好文 时间:
2016-02-02 16:29:51
阅读次数:
156
1.插入排序voidInsertSort(int*a,intn)
{
for(i=1;i<n;i++)
{
k=a[i];
for(j=i;k<a[j-1]&&j>0;j--)
a[j]=a[j-1];
a[j]=k;
}
}2.冒泡排序voidBubbleSort(int*a,intn)
{
for(i=0;i<n;i++)
{
for(j=0;j<n-i;j++)
{
if(a[j]>a[j+1]..
分类:
编程语言 时间:
2016-01-31 13:43:12
阅读次数:
278