算法
JasonXcode
不玩音乐的产品经理不是好程序员!
展开
-
排序算法之计数排序
计数排序是一种非比较的排序,这种方法思路大概是先算出待排序数据里面的数字分别出现多少次,然后再依据这个存放进新的数组里面,输出这个数组,排序也就完成了。时间复杂度为o(n+k),很多人说是o(n),但其实只是接近而已。其中里面的n是排序的数据个数,而k是排序中最大的值,可想而知,在n确定的情况下,k的值越小,时间复杂度越低,例如就算n很小,但排序数是{2,5,3,10000}的话,那也需要很多时间原创 2013-12-03 08:50:13 · 731 阅读 · 0 评论 -
插入排序算法笔记
插入排序: 1、最简单的排序算法。 2、在增量排序中有很高的效率,比如已经存在成绩排序,要插入一个新的成绩并且排序。 3、不需要额外的存储空间(属于内部排序)。 4、时间复杂度为O(n^2)。原创 2013-12-13 13:32:48 · 790 阅读 · 0 评论 -
O()算法表示分析
前阵子有同学跟我讨论,怎么这个问题用递归方法(O(n^2))比非递归方法(O(n)解决时间还快?按照算法复杂度来看,前者比后者慢啊,这怎么解释? 其实,算法复杂度O()的表示方法是参考很多因素的,不能因为一两个例子而决定。 首先,一个算法的好坏,我们肯定不能做最好情况的打算,比如任何一种搜索算法,假如第一个元素就是我们要搜索的元素,那原创 2013-12-05 19:54:53 · 1674 阅读 · 0 评论 -
动态分配内存与悬空指针
int F(int **P) { int a=10; *P = &a; return 0; } 这是以前想过原创 2013-12-05 20:45:42 · 1042 阅读 · 0 评论 -
用List实现Stack基本功能
Stack是一种特殊的串行形式的数据结构。 特点: 1、只允许在栈顶压入新元素(push); 2、只允许先由栈顶元素输出,也就是后进先出(pop); 下面我打算用List来实现Stack最简单的功能。 我的思路: 根据List的知识,允许在List里面删除,插入元原创 2013-12-21 16:03:26 · 1144 阅读 · 1 评论