
数据结构与算法
shuwenting
这个作者很懒,什么都没留下…
展开
-
数据结构与算法python-第二章线性表(2)
主要内容:(链接表/链接表的变形/应用)链接表结构,基本技术,基本操作,加入和删除元素,操作的复杂性,Python 实现,结点类,单链表类,继承/基类/派生类,带尾结点引用的单链表一、顺序表的另一种组织形式——链接表1.如果一个表在使用中经常需要修改结构,用顺序表实现就不很方便,操作代价可能很高,根源在于元素存储的集中方式和连续性2.线性表实现的两个基本需要:(1)能够找到表中的首元素(2)从表里...原创 2018-04-02 14:37:53 · 405 阅读 · 0 评论 -
循环、递归
循环(loop) - 最基础的概念, 所有重复的行为递归(recursion) - 在函数内调用自身, 将复杂情况逐步转化成基本情况(数学)迭代(iterate) - 在多次循环中逐步接近结果(编程)迭代(iterate) - 按顺序访问线性结构中的每一项遍历(traversal) - 按规则访问非线性结构中的每一项...原创 2018-03-27 11:53:39 · 187 阅读 · 0 评论 -
数据结构与算法python(一)引言
1.程序设计解决的两个问题:(1)处理实际问题中的各种对象及其相互关系,即映射到python能处理的某种结构(2)实际问题的求解过程映射到一个计算过程,用程序实现该过程2.解决一个实际问题而开发程序的工作氛围四个阶段:(1)分析:弄清楚要求解的问题,给出尽可能严格的描述(2)设计:信息到数据表示的映射,规划求解过程等(3)编码:使用python编程(4)测试与维护:确认得到的程序能解决问题,以及为...原创 2018-03-27 11:57:34 · 434 阅读 · 1 评论 -
数据结构与算法-绪论-(二)python
1.python程序的计算复杂性2.问题和复杂性3.计算和数据表示用计算机解决问题,可以认为是实现某种信息表示形式的转换.(1)数据data:计算机程序能够处理的符号形式的综合,数据是编码的信息。(2)数据元素data element:数据的基本单位(3)数据结构data structures:一组数据元素按照一定方式构成的复合数据形式,以及作用于这些元素或者结构上的一些函数或操作。常用数据结构有...原创 2018-03-28 10:51:31 · 400 阅读 · 0 评论 -
数据结构与算法-第一章线性表(1)
概况:计算机内存结构,数据结构的基本实现技术,python对象和变量,线性表概念,python list,链接表,线性表的变形,应用一、内存结构模型1、计算机的基本内存结构:(1)内存是线性排列的一批存储单元,单元有唯一编号,称为单元地址(2)单元地址从0开始连续排列,可用地址是一个连续整数区间(3)对内存单元的访问都是通过单元地址进行。因此,要访问一个单元,必须掌握其地址(4)基于地址访问单元是...原创 2018-03-29 12:51:09 · 471 阅读 · 0 评论 -
【算法】选择排序法
一、介绍1.选择排序法是将序列分为两段,有序前列和无序后列,每次查找无序后列中最大元素,将其插入到有序前列的最末尾处,直至无序后列最后一个元素,最终排序后的序列为降序序列2.适用于包括数组和向量在内的序列3.选择排序与冒泡排序的区别是选择排序每次遍历时会记住最大元素的位置,只进行一次交换,而冒泡排序每次遍历时会交换两个顺序不合法的元素二、思想1.将序列分为两段,有序前列[0,r...原创 2018-08-22 09:24:31 · 48538 阅读 · 1 评论 -
【算法】插入排序法
一、介绍1.插入排序是简单排序算法中的一种,它主要适用于包括向量和列表在内的任何序列结构二、思路1.将数列分为有序前缀和无序后缀两部分,将后缀首元素不断往前缀中移动,直至后缀无元素2.存在一个标识位,标识有序前缀和无序后缀,即s[0,r)为有序前缀,s[r,n-1]为无序后缀3.将元素s[r]往前插入时,需要注意元素的位置移动,此时是在s[0,r]区间进行插入,从后往前比较,若...原创 2018-08-21 12:17:47 · 328 阅读 · 0 评论 -
【算法】冒泡排序法
一、介绍冒泡排序:又称起泡排序,将整个数列排场一个非降序列二、思想1.相邻两个元素相比较,若A[i]>A[i+1],则调换二者位置;若A[i]<A[i+1],则二者位置保持不变2.在一次循环过后,整个数列中最大的数将会在整个数列的最后3.局部有序——>整体有序4.停止循环的标识:(1)循环前标识变为true;(2)若在循环里需要交换(证明数组非排序数组),...原创 2018-08-21 08:24:49 · 274 阅读 · 0 评论