博客专栏  >  编程语言   >  数据结构与算法分析

数据结构与算法分析

以《数据结构与算法分析——C语言描述》《数据结构(C语言版)》这两本书为蓝本,全面的分析常用的数据结构及算法,并给出解释和程序

关注
3 已关注
20篇博文
  • 算法学习之查找算法:静态查找表(2)有序表查找

    如果静态查找表是一个有序表,则可以使用折半查找。        折半查找的过程是:先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。折半查找过程是以处于区间中间位置记录...

    2014-09-24 20:57
    1007
  • 算法学习之查找算法:静态查找表(1)顺序表查找

    引言:         查找表一般

    2014-09-22 06:44
    1570
  • 算法学习之排序算法:堆排序

    要了解堆排序,首先要了解堆的概念,因为本文主要研究堆排序的算法,此处对数据结构堆只是给出概念:n个元素的序列{k1,k2,...kn},当且仅当满足如下关系时,称之为堆。 k[i]  (或 k[i] ...

    2014-09-20 08:16
    1106
  • 算法学习之排序算法:归并排序

    “归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。无论是顺序存储还是链表存储结构,都可在O(m+n)的时间量级上实现。         归并排序又是一类不同的排序方法。假设初始序列含有n个...

    2014-09-13 09:12
    1061
  • 算法学习之排序算法:选择排序

    选择排序:每一趟在n-i+1(i=1,2,...,n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。 一、简单选择排序         一趟选择排序操作...

    2014-09-12 07:17
    1068
  • 算法学习之排序算法:快速排序

    快速排序:快速排序是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列...

    2014-09-11 09:15
    1058
  • 算法学习之排序算法:冒泡排序

    冒泡排序:不同于插入排序,冒泡排序主要通过“交换”来完成。 基本思想: 1、将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(Record[1].key > Record[2].key)...

    2014-09-07 07:25
    1024
  • 算法学习之排序算法:插入排序(直接插入排序、折半插入排序、2-路插入排序)

    引言:       插入排序作为最简单易于理解的排序算法,基本实现比较简单。本文详细介绍直接插入排序,并给出实现,简单的介绍折半插入排序,并给出2-路插入排序和表插入排序两种插入排序...

    2014-09-07 06:03
    1195
  • 算法学习之排序算法:希尔排序

    希尔排序又称“缩小增量排序”,它的基本思想是:先将整个待排记录序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对记录进行一次直接插入排序。       希尔排序的一个...

    2014-09-06 23:50
    1083
  • 七大内部排序算法总结(插入排序、希尔排序、冒泡排序、简单选择排序、快速排序、归并排序、堆排序)

    写在前面:                  排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。因此排序掌握各种排序算法非常重要。...

    2014-07-16 08:01
    4458
  • 静态查找表:顺序查找、折半查找、分块查找

    引言:        除去各种线性和非线性的数据结构外,还有一种在实际应用中大量使用的数据结构——查找表。查找表是由同一类型的数据元素构成的集合。        对查找表经常进...

    2014-07-16 07:55
    2077
  • 队列——数组实现

    引言:        队列的实现除了链表外,也可用数组实现。 分析描述:       队列的结构: typedef int ElementType; typedef s...

    2014-07-10 18:26
    1009
  • 队列——链表实现

    引言:            队列与栈的区别是队列是先进先出的数据结构。为了使得出入队列容易,可以引入队列头指针和队列尾指针。 分析描述:        队列的结点结构。 t...

    2014-07-09 13:38
    1205
  • 栈——数组实现

    引言:              使用链表实现栈存在“对malloc和free的调用开销昂贵”的缺点,特别是与指针操作的例程相比尤其如此。利用数组实现栈可以避免了指针。但它的缺点是可能存在空间的浪费。...

    2014-07-09 10:24
    929
  • 栈——链表实现

    引言:                栈是先进后出的数据结构类型。在许多应用中也会经常用到,比如迷宫的求解时会用到栈结构。掌握栈的基本操作对于解决问题,有很大的帮助,尤其是编程中经常用到的递归的思想,...

    2014-07-09 09:31
    780
  • 双向链表

    引言:         单链表存在一个问题,当我们想要访问某个结点的前一个结点时,要从头结点开始访问。显然这样的操作是令人烦躁的。为此,双向链表出现,它比单链表多出了一个指针域,指向前一个结...

    2014-07-08 22:39
    809
  • 单链表

    引言:        数据结构中,很重要的一个结构就是链表。链表虽然简单,但却能很好的考查程序员的基本功,因此在很多面试、笔试中会直接或间接的考查它。下面就对链表进行系统的复习。 分析描述: ...

    2014-07-08 19:49
    826
  • 最大公约数问题

    引言: 最大公约数就是给出两个数,找出它们的最大公约数。该问题算法实现技巧性比较强,面试中常出现,现在分析之。 问题描述: 给出两个正整数A、B,求出这两个正整数的最大公约数。 算法一:更相减...

    2014-07-06 11:32
    900
  • 二分查找

    引言: 二分查找是学习数据结构时,接触比较早的一个算法,面试题中也经常考察到。现在对它进行总结。 问题描述: 给定一个整数X和整数A0、A1、A2……A(n-1),后者已经预先排序并在内存中,求使...

    2014-07-06 10:30
    740
  • 最大子序列和问题

    最大连续子序列问题可以很好的让我们了解算法对于程序设计的重要性,因此会在诸多面试笔试题目中考到,现在对它进行一个总结。 问题描述:求数组中最大连续子序列和。例如给定数组A={4,-3, 5,-2,...

    2014-07-06 08:41
    963

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部