面试题
xiaojin38
这个作者很懒,什么都没留下…
展开
-
数据结构与算法,反转单链表的几种方法
typedef struct LNode{ int data; struct LNode *next;}LNode, *LinkedList;并且这个单链表有一个头指针list指向第一个结点,最后一个结点指向NULL,很容易理解。一、最容易想到的第一种方法就是重新建立一个单链表newList,每次将list中的第一个结点放到newList后面。注释比较详细,所以就不具体说了,直接原创 2017-09-25 22:26:56 · 846 阅读 · 1 评论 -
数据结构与算法,二分查找
1.时间复杂度:每次能去掉一半即 logn2.实现方式:while循环 与 递归 我更推荐 while 循环,因为递归有个潜在的问题就是 stack over flow(堆栈溢出),而且在实际工程中是尽量避免递归的。虽然递归写起来方便,也不容易出错。3.实现关键点我总结了下,一共有以下四点 start + 1 < end 这个是 while 循环条件,即退出循环的条件是 start +1 >原创 2017-09-26 12:14:04 · 521 阅读 · 0 评论 -
数据结构与算法,时间复杂度和空间复杂度
算法的时间复杂度和空间复杂度合称为算法的复杂度。 1.时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时转载 2017-09-27 16:04:16 · 871 阅读 · 0 评论