ZP1015

当你的才华还撑不起你的野心时,就应该静下心来学习; 当你的能力还驾驭不了你的目标时,就应该沉下心来历练...

排序:
默认
按更新时间
按访问量
RSS订阅

OJ 系列之【中级】双链表基本操作

#include <stdlib.h>#define null 0 #define MAXSIZE 50struct strlnode { int data; struct strlnode *plast; struct strlnode *pnext; };v...

2016-02-22 10:38:10

阅读数 610

评论数 1

[LeetCode-28] Implement strStr(KMP 字符串匹配)

1、KMP算法的思想 由D.E.Knuth、J.H.Morris和V.R.Pratt共同提出了一个改进算法,消除了Brute-Force算法中串s指针的回溯,完成串的模式匹配。时间复杂度为O(s.curlen+t.curlen),这就是Knuth-Morris-Pratt算法,简称KMP 算法。...

2015-11-20 17:59:41

阅读数 1125

评论数 0

算法学习之字符串匹配 KMP 算法(一)(原理介绍)

下面,我用自己的语言,试图写一篇比较好懂的KMP算法解释。   1.   首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较。因为B与A不匹配,所以搜索词后移一位。   2. ...

2015-11-18 21:41:14

阅读数 390

评论数 0

堆栈顺序存储和 free 失败原因分析

*** Error in `./a.out': free(): invalid pointer: 0x09e7c018 *** ======= Backtrace: ========= /lib/i386-linux-gnu/libc.so.6(+0x767c2)[0xb76307c2] /lib...

2015-10-19 17:20:08

阅读数 1378

评论数 0

数据结构学习之 union 共用体(union 到底有什么用?)

1、引言共用体常用来节省内存,特别是一些嵌入式编程,内存是非常宝贵的! 共用体也常用于操作系统数据结构或硬件数据结构! union 在操作系统底层的代码中用的比较多,因为它在内存共享布局上方便且直观。所以网络编程,协议分析,内核代码上有一些用到 union 都比较好懂,简化了设计。共用体(un...

2015-09-08 16:11:33

阅读数 3033

评论数 0

算法学习之排序算法(五)(快速排序)

1、算法思想设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时...

2015-08-19 21:47:56

阅读数 739

评论数 0

算法学习之排序算法(四)(希尔排序)

希尔排序的基本思想是 把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。 随着步长逐渐减小,所分成的组包含的记录越来越多,当步长的值减小到 1 时,整个数据合成为一组,构成一组有序记录,则完成排序。

2015-08-15 19:14:12

阅读数 783

评论数 0

算法学习之排序算法(三)(选择排序法)

选择排序工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。选择排序是和冒泡排序差不多的一种排序。和冒泡排序交换相连数据不一样的是,选择排序只有在确定了最小的数据之后,。

2015-08-13 21:55:38

阅读数 690

评论数 0

算法学习之排序算法(二)(直接插入排序法)

1、插入法排序原理直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。

2015-08-12 21:34:58

阅读数 686

评论数 0

算法学习之排序算法(一)(冒泡法)

冒泡排序的内容并不复杂。假设有n个数据需要排序,那么我们需要确定n个从大到小的数据,每一次都挑选第n大的数据是多少,并且放大相应的位置。直到所有的数据都排列整齐了,那么我们的排序就结束了。 1、冒泡代码void bubble_sort(int array[], int length) { ...

2015-08-12 21:25:46

阅读数 877

评论数 0

Compare And Swap(CAS)实现无锁多生产者

struct node{ struct node *next; int data; }struct node *queue;//队列头多个消费者(多线程)都需要向这个queue插入数据 为了说明问题的复杂性,先看看只有一个消费者时的情况,插入队列的操作非常简单: Step1) new_...

2015-07-27 21:59:22

阅读数 2627

评论数 0

并发无锁队列学习(单生产者单消费者模型)

【摘要】本文介绍单生产者单消费者模型的队列。根据写入队列的内容是定长还是变长,分为单生产者单消费者定长队列和单生产者单消费者变长队列两种。单生产者单消费者模型的队列操作过程是不需要进行加锁的。生产者通过写索引控制入队操作,消费者通过读索引控制出队列操作。二者相互之间对索引是独享,不存在竞争关系。

2015-07-24 19:45:10

阅读数 2854

评论数 0

并发无锁队列学习(数据结构)

提到并行计算通常都会想到加锁,事实却并非如此,大多数并发是不需要加锁的。比如在不同电脑上运行的代码编辑器,两者并发运行不需要加锁。在一台电脑上同时运行的媒体播放放器和代码编辑器,两者并发运行不需要加锁(当然系统调用和进程调度是要加锁的)。在同一个进程中运行多个线程,如果各自处理独立的事情也不需要加...

2015-07-24 19:35:12

阅读数 2011

评论数 0

并发无锁队列学习(概念介绍)

【摘要】队列在计算机中非常重要的一种数据结构,尤其在操作系统中。队列典型的特征是先进先出(FIFO),符合流水线业务流程。在进程间通信、网络通信之间经常采用队列做缓存,缓解数据处理压力。结合自己在工作中遇到的队列问题,总结一下对不同场景下的队列实现。根据操作队列的场景分为:单生产者——单消费者、多...

2015-07-24 19:23:56

阅读数 3598

评论数 0

数据结构学习之二叉树(面试易考题整理)

【摘要】计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握...

2015-06-23 09:20:56

阅读数 5872

评论数 2

数据结构学习之二叉树(性质总结)

1、二叉树结点编号在一棵n个结点的完全二叉树中,从树根起,自上层到下层,每层从左至右,给所有结点编号,能得到一个反映整个二叉树结构的线性序列。 编号特点 2、二叉树性质

2015-06-22 10:13:49

阅读数 3963

评论数 0

算法学习之链表反转

【摘要】链表逆转是面试环境中经常遇到的一道题目,也是我们在实际开发中可能会遇到的开发需求。和线性逆转不一样,单向链表的节点需要一个一个进行处理。有需要的朋友可以看一下,如果有没考虑周全的地方欢迎指正。为了显示两者之间的区别,我们分别对线性内存和链表进行逆转:(1)连续内存数据反转STATUS no...

2015-06-20 12:33:16

阅读数 1433

评论数 0

数据结构学习之队列(链式存储)

【摘要】前一篇博客主要讨论循环队列,但是循环队列都是事先申请好空间,使用期间是不能释放的。但是链队列,每次都可以进行申请和释放结点。再无法预估队列长度的时候,我们可以考虑用链队列。 (1)设计队列数据结构/*结点结构*/ typedef struct _QUEUE_NODE { int...

2015-06-19 17:18:30

阅读数 684

评论数 0

数据结构学习之循环队列(顺序存储)

【摘要】队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。 这样有个缺陷,空间利用率不高,所以我们直接学习循环队列(基于连续内存的)。 (1)设计队列数据结构typedef struct _QUEUE_NODE { int* ...

2015-06-19 11:07:12

阅读数 1160

评论数 2

数据结构学习之堆栈(链式存储)

【摘要】链表存储结构的内存地址不一定是连续的,但顺序存储结构的内存地址一定是连续的;链式存储适用于在较频繁地插入、删除、更新元素时,而顺序存储结构适用于频繁查询时使用。所以本文主要基于前文的基础,讨论链式存储结构的堆栈。1、链式存储(不连续内存)/*链式结构*/ typedef struct _S...

2015-06-19 09:40:41

阅读数 1903

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭