标签分类
当前位置:首页 > 程序设计电子书 > C语言电子书网盘下载
数据结构与算法分析:C语言描述 数据结构与算法分析:C语言描述
lyygzhc1

lyygzhc1 提供上传

资源
34
粉丝
28
喜欢
56
评论
16

    数据结构与算法分析:C语言描述 PDF 含答案高清版

    C语言电子书
    • 发布时间:

    给大家带来的一篇关于C语言相关的电子书资源,介绍了关于数据结构、算法分析、C语言描述方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小38.4 MB,维斯编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.8,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

  • 数据结构与算法分析:C语言描述 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1sLciLKcR6nibqyHgQS0RkA
  • 分享码:esq5
  • 数据结构与算法分析:C语言描述 PDF

    书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括。由于本书选材新颖,方法实用,题例丰富,取舍得当。本书的目的是培养学生良好的程序设计技巧和熟练的算法分析能力,使得他们能够开发出高效率的程序。从服务于实践又锻炼学生实际能力出发,书中提供了大部算法的C程序和伪码例程,但并不是全部。一些程序可从互联网上获得。
    本书是《Data Structures and Algorithm Analysis inC》一书第2版的简体中译本。原书曾被评为20世纪*的30部计算机著作之一,作者Mark AllenWeiss在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材。
    在本书中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。

    全书特点如下:

    专用一章来讨论算法设计技巧,包括贪婪算法、分治算法、动态规划、*化算法以及回溯算法

    介绍了当前流行的论题和新的数据结构,如斐波那契堆、斜堆、二项队列、跳跃表和伸展树

    安排一章专门讨论摊还分析,考查书中介绍的一些高级数据结构

    新开辟一章讨论高级数据结构以及它们的实现,其中包括红黑树、自顶向下伸展树。treap树、k-d树、配对堆以及其他相关内容

    合并了堆排序平均情况分析的一些新结果

    本书是国外数据结构与算法分析方面的标准教材,介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算)。本书的编写目标是同时讲授好的程序设计和算法分析技巧,使读者可以开发出具有最高效率的程序。本书可作为高级数据结构课程或研究生一年级算法分析课程的教材,使用本书需具有一些中级程序设计知识,还需要离散数学的一些背景知识。

    目录

    • 出版者的话
    • 专家指导委员会
    • 译者序
    • 前言
    • 第1章 引论
    • 第2章 算法分析
    • 第3章 表、栈和队列
    • 第4章 树
    • 第5章 散列
    • 第6章 优先队列(堆)
    • 第7章 排序
    • 第8章 不相交集ADT
    • 第9章 图论算法
    • 第10章 算法设计技巧
    • 第11章 摊还分析
    • 第12章 高级数据结构及其实现
    • 索引

    上一篇:Go语言编程入门与实战技巧  下一篇:SPSS统计分析方法及应用

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    C语言相关电子书
    学习笔记
    网友NO.275918

    Python入门_浅谈数据结构的4种基本类型

    数据结构:通俗点说,就是储存大量数据的容器。这里主要介绍Python的4种基本数据结构: 列表、字典、元组、集合。 格式如下: 列表:list = [val1,val2,val3,val4],用中括号; 字典:dict = {key1:val1,key2:val2},大括号,且每个元素是带有冒号的key与val的对应关系组; 元组:tuple = (val1,val2,val3,val4),小括号; 集合:set = {val1,val2,val3,val4},大括号。 1. 列表: list = [val1,val2,val3,val4] 列表最显著的特征是: 列表中每个元素都是可变的; 列表中的元素都是有序的,即每个元素都有一个位置; 列表可以容纳Python中的任何对象。 接下来看下列表的增删改查。 增: 1 list = [1,'dwd',3.6]2 list.insert(0,'Python')3 print(list) 用insert方法可以实现在列表中增加元素。insert方法需要写明增加在哪个位置和增加的内容,新增元素的实际位置是在指定位置元素之前的位置;如果指定的位置不存在,默认会增加在列表末尾。 1 list = [1,'dwd',3.6]2 list[0:0] = [9]3 # 【0:0】是指在list中的第1个位置插入新元素4 list[3:3] = ['a']5 # 【3:3】是指在list中的第4个位置插入新元素6 print(list) 上面说到的这两种方法都是添加单个元素,除了添加单个元素外,还可以添加多个元素,用extend方法来实现。 1 list_a = [1,'dwd',3.6]2 list_b = ['Python',56,'game']3 list_a.extend(list_b)4 # extend方法用于在列表末尾一次……

    网友NO.509213

    Python cookbook(数据结构与算法)让字典保持有序的方法

    本文实例讲述了Python让字典保持有序的方法。分享给大家供大家参考,具体如下: 问题: 创建一个字典,同时对字典做迭代或序列化操作时,也能控制其中元素的顺序; 解决方案: 可以使用collections模块中的OrderedDict类来控制字典中元素的顺序。当对字典做迭代时,他会严格按照元素初始添加的顺序进行。例如: from collections import OrderedDictd=OrderedDict()d['foo']=1d['bar']=2d['spam']=3d['grok']=4for key in d: print(key,d[key]) Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:24:06) [MSC v.1600 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information. ================================ RESTART ================================ foo 1bar 2spam 3grok 4 当想构建一个映射结构以便稍后对其做序列化或编码成另一种格式时,OrderedDict就显得特别有用。 例如:若想在进行JSON编码时精确控制各字段的顺序,那么只要首先在OrderedDict中构建数据就可以了。 import json dOrderedDict([('foo', 1), ('bar', 2), ('spam', 3), ('grok', 4)]) json.dumps(d)'{"foo": 1, "bar": 2, "spam": 3, "grok": 4}' 补充: OrderedDict内部维护了一个双向链表,它会根据元素加入的顺序排列键的位置。第一个新加入的元素被放置在链表的末尾,接下来对已存在的键做重新赋值不会改变键的顺序。 注意: OrderedDict的大小是普通字典的2倍,这是它额外……

    网友NO.377130

    Python如何实现bitmap数据结构

    bitmap是很常用的数据结构,比如用于Bloom Filter中、用于无重复整数的排序等等。bitmap通常基于数组来实现,数组中每个元素可以看成是一系列二进制数,所有元素组成更大的二进制集合。对于Python来说,整数类型默认是有符号类型,所以一个整数的可用位数为31位。 bitmap实现思路 bitmap是用于对每一位进行操作。举例来说,一个Python数组包含4个32位有符号整型,则总共可用位为4 * 31 = 124位。如果要在第90个二进制位上操作,则要先获取到操作数组的第几个元素,再获取相应的位索引,然后执行操作。 上图所示为一个32位整型,在Python中默认是有符号类型,最高位为符号位,bitmap不能使用它。左边是高位,右边是低位,最低位为第0位。 初始化bitmap 首先需要初始化bitmap。拿90这个整数来说,因为单个整型只能使用31位,所以90除以31并向上取整则可得知需要几个数组元素。代码如下: #!/usr/bin/env python#coding: utf8class Bitmap(object):def __init__(self, max):self.size = int((max + 31 - 1) / 31) #向上取整if __name__ == '__main__':bitmap = Bitmap(90)print '需要 %d 个元素。' % bitmap.size $ python bitmap.py需要 3 个元素。 计算索引 确定了数组大小后,也就可以创建这个数组了。如果要将一个整数保存进这个数组,首先需要知道保存在这个数组的第几个元素之上,然后要知道……

    网友NO.615753

    详解ES6中的 Set Map 数据结构学习总结

    ES6中的 Set 数据结构 ES6 新增了一种 Set 数据结构。它类似数组。 最重要的一点是 Set中的结构成员没有重复的, 可用这点 一行代码实现数组去重。 Set 本身是一个构造函数。通过 new Set() 来创建Set结构。 let arr1 = ['Hello', 'World', 'ES6'] let set1 = new Set() arr1.forEach(type = { set1.add(type) }) 通过new Set创建一个Set结构。 forEach 遍历arr1数组。把每一项通过Set.prototype.add 方法向Set结构中添加成员。 Set 也可以接受一个数组作为参数。 let arr2 = [1,2,3,4,1,5,2] let set2 = new Set(arr2) for (let type of set2) { console.log(type) } // 1 // 2 // 3 // 4 // 5 上面的new Set() 创建 Set 数据结构时, 将一个数组作为它的参数。最后通过 for of 遍历 set2。因为 结构成员没有重复, 所以打印 1 2 3 4 5 Set 接受的参数不会进行 类型转换 , new Set(5, '5') 这完全是两个值。 Set 实现数组去重 // 方法1 [...new Set([1,2,3,1,2])] // 1 2 3 // 方法2 Array.from(new Set([1,2,3,1,2])) // 1 2 3 都是通过向 new Set() 中传入一个数组, 利用 Set结构成员都是唯一的特性, 最后通过扩展运算符..., 或者ES6提供的一种将类数组转换为数组的方法 Array.from()。 Set 操作方法 Set.prototype.add(value) 向Set结构中添加一名成员, 返回值为Set结构 Set.prototype.delete(value) 删除一名成员, 返回值为布尔值。 true成功, false失败 Set.prototype.has(value) Set 成员是否存在,……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明