
数据结构与算法
youxin2012
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
常用排序算法 的分析与对比
最近刚学完 常用排序算法,做个简单总结。对比表格如下:排序方法平均情况最好情况最坏情况辅助空间稳定性冒泡排序O(n2)O(n)O(n2)O(1)稳定简单选择排序O(n2)O(n2)O(n2)O(1)稳定直接插入排序O(n2)O(n)O(n2)O原创 2013-04-08 10:33:19 · 2113 阅读 · 1 评论 -
Remove Nth Node From End of List -- leetcode
几个测试用例:1. n > len2. n = len ,删除首部/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class So原创 2014-11-29 09:17:36 · 1112 阅读 · 0 评论 -
Insertion Sort List --leetcode
思路:创建一辅助节点,作为生成链表的头结点(不含有效数据)。遍历原链表中每一个节点,并将其插入到新链表的对应位置/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL原创 2014-11-30 09:14:27 · 1349 阅读 · 0 评论 -
Search in Rotated Sorted Array--leetcode
Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to search. If found in the array return its inde原创 2014-11-28 14:46:23 · 1111 阅读 · 0 评论 -
Merge k Sorted Lists -- leetcode
Merge k Sorted ListsMerge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.两种实现方法,第一种采用优先队列,第二种采用分治/** * Definition for singly-linked list. * struct ListNo原创 2014-11-27 18:25:13 · 1280 阅读 · 0 评论 -
KMP算法原理与实现(精简)
思想:使源字符串中的下标不回溯,利用模式字符串自身的相关性,减少模式字符串中下标回溯的距离。从而减少比较的次数。关键问题: 分析模式字符串,得出 部分匹配值数组。原理参考此处。具体实现:#include #include #include void get_next(int next[], char source[], int n);//获取部分匹配字符数组int In原创 2013-12-02 23:10:42 · 10724 阅读 · 6 评论 -
算法分析 方法简介
算法分析方法讲解算法分析中常常看到形如T(n) = O( f(n) )的表达式,下面做简单说明: 表达形式:1.如果存在正 常数c和n 使得 当 N≥n时 T(N)≤ cf(N), z则记为T(N) = O( f(N)). (大O记法。 例如O(N2) 读作大O N平方)2.如果存在正 常数c和n 使得 当 N≥n时 T(N) 3.如果存在正 常数c和n 使得 当 N原创 2013-06-14 11:33:55 · 2207 阅读 · 0 评论 -
联机算法 与 递归调用 的分析
联机算法:在任意时刻,算法对要操作的数据只读入(扫描)一次,一旦被读入并处理,它就不需要在被记忆了。而在此处理过程中算法能对它已经读入的数据立即给出相应子序列问题的正确答案。具有这种特性的算法叫做联机算法(on-line algorithm)。该算法仅需要常量空间并以线性时间运行,因此联机算法几乎是完美的算法。递归调用的准则:1. 基准情形。 不用递归就能求解的情形原创 2013-06-14 17:11:03 · 3859 阅读 · 0 评论 -
数据结构--线性表顺序存储
之前对 数据结构 的学习,多注重思想,小于实践。发现实现过程中,其实存在着不少问题。打算在这一阶段的学习过程中,总结些实现过程的知识,方便日后再学习。知识点: 指针传递 和 函数指针 指针传递:当数据量较大时(如 类或者结构体),函数在传递参数时 通常传递 指针函数定义时,可以直接操作 形参,也可以定义变量 接受形参之后在 操作Status ListTraverse原创 2013-11-16 15:57:07 · 1644 阅读 · 1 评论 -
编程珠玑中 “位矢量法”的应用
位图法是《编程珠玑》第一章中出现的磁盘排序算法。题目:一个最多包含n个正整数的文件,每个数都小于n,其中n=10^7,且所有正整数都不重复。求如何将这n个正整数升序排列。约束:最多有1MB的内存空间可用,有充足的磁盘存储空间。分析:这个题目的最大亮点是只有1MB的内存空间,我们可以通过计算得出,内存只有1MB可以储存的int(4byte)有10^3*10^3/4=250 0原创 2013-05-15 17:03:53 · 1531 阅读 · 0 评论 -
快速排序 算法 详解 及 深度优化
下面简介经典算法 快速排序算法 实现及优化。 (欢迎大家指点,继续提出优化的方法,共同提高)基本思想:(以按从小到大排序为例说明)通过多次的排序,每次的排序均将要排序的数组分为两部分,前一部分均比中间值小,后一部分均比中间值大,这样重复递归下去将每一部分按相同的思路进行分割,最终使整个数组达到从小到大有序排列。较冒泡排序的优点:同为通过不断的比较和移位来得到有序数组,但快排增大了比较和移原创 2013-04-03 22:54:12 · 6367 阅读 · 5 评论 -
3Sum--leetcode
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:Elements in a triplet (a,b,c) must be in原创 2014-12-04 11:57:45 · 1344 阅读 · 0 评论