随笔分类 -  数据结构

数据结构学习(十三)、快速排序
摘要:基本思想:通过一趟排序将待排记录分割成独立两个部分,其中一部分记录的关键字均比另一部分记录的关键字小, 则可分别对这两部分继续进行排序,重复操作以上操作,已达到整个序列有序的目的 改进算法: 1、优化选取枢轴 三数取中法,即先选取三个关键字进行排序,将中间数作为枢轴,一般取左端、中间、右端三个数。 阅读全文

posted @ 2016-10-17 11:39 会学习的猪 阅读(151) 评论(0) 推荐(0) 编辑

数据结构学习(十二)、归并排序
摘要:排序思想:将含有n个记录的序列,看成n个有序子序列,每个子序列长度为1,如何两两归并,得到[n/2]([x]表示不小于x的最小整数)个长度2或1的有序子序列; 再两两合并,如此重复,最后得到一个长度为n的有序序列为止。 递归方法: 非递归方法: 阅读全文

posted @ 2016-10-17 10:58 会学习的猪 阅读(152) 评论(0) 推荐(0) 编辑

数据结构学习(十一)、堆排序
摘要:基本思想:将待排序的序列构成一个大顶堆。此时,最大的值就是堆顶,将它一走,并将余下的序列重新构造成一个堆。如此反复。 阅读全文

posted @ 2016-10-17 10:17 会学习的猪 阅读(155) 评论(0) 推荐(0) 编辑

数据结构学习(十)、插入排序
摘要:基本思想:将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。 阅读全文

posted @ 2016-10-17 09:37 会学习的猪 阅读(286) 评论(0) 推荐(0) 编辑

数据结构学习(九)、简单选择排序
摘要:排序思想:通过n-i次关键字间的比较,从n-i+1个记录中选出最小的关键字记录,并和第i个记录交换。 阅读全文

posted @ 2016-10-17 09:28 会学习的猪 阅读(193) 评论(0) 推荐(0) 编辑

数据结构学习(八)、冒泡排序
摘要:冒泡排序基本思想:比较相邻的二个元素,前者比后者大,则交换二个元素。 冒泡排序优化 当没有任何数据交换则说明序列有序,停止循环 阅读全文

posted @ 2016-10-17 09:15 会学习的猪 阅读(172) 评论(0) 推荐(0) 编辑

数据结构学习(七)、串的匹配算法
摘要:子串的定位操作通常称为串的模式匹配,应该算是串中的最重要的操作之一。 我们思考下算法,然后设计函数。假设主串 S=It's a fine day,子串T=fine。我们要寻找sub在s1中的首个出现位置; 1、设i,j分别S,T当前下标,其中j=1; 2、若S[i]=T[j=1] 则可能子串开始,此 阅读全文

posted @ 2016-09-26 17:50 会学习的猪 阅读(614) 评论(0) 推荐(0) 编辑

数据结构学习(六)、串的基本操作
摘要:串的生成 串的比较 串的拼接 串的截取 阅读全文

posted @ 2016-09-26 15:28 会学习的猪 阅读(1173) 评论(0) 推荐(0) 编辑

数据结构学习(五)、串
摘要:串的逻辑结构和线性表很相似,不同之处在于串针对的是字符集,也就是串中的元素都是字符,哪怕串中的字符是“123”这样的数字组成, 或者“2010-10-1CT这 样的日期组成,它们都只能理解为长度为3和长度为10的字符串,每个元素都是字符而已。 因此,对于串的基本操作与线性表是有很大差别的。线性表更关 阅读全文

posted @ 2016-09-26 14:29 会学习的猪 阅读(491) 评论(0) 推荐(0) 编辑

数据结构学习(四)、队列
摘要:队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。线性表分为顺序存储和链式存储,栈是线性表, 所以也有这两种存储方式。同样,队列作为一种特殊的线性表,也同样存在这两种存储方式。我们先来看队列的顺序存储结构。 顺序队列初始化 顺序队列初始化,就是把队头和队尾都归0,也就是 阅读全文

posted @ 2016-09-23 14:51 会学习的猪 阅读(312) 评论(0) 推荐(0) 编辑

数据结构学习(三)、栈
摘要:栈是一种特殊的线性表。大家可能会有疑问,竟然栈是一种线性表,那为什么还要定义栈呢?因为栈的引入简化了程序设计的问题, 使我们思考范围更小,只需关注top位置。线性表分为顺序存储和链式存储,栈是线性表,所以也有这两种存储方式。同样, 栈作为一种特殊的线性表,也同样存在这两种存储方式。我们先来看栈的顺序 阅读全文

posted @ 2016-09-23 13:04 会学习的猪 阅读(362) 评论(0) 推荐(0) 编辑

数据结构学习(二)、线性表的练习
摘要:学习新的知识,只是单纯的看书,当时你跟随着作者的思路可能很容易就懂了,脱离书本后,发现似懂非懂, 到了实际的应用时,更加会感觉似是而非。所以,适量的练习,是非常有利于理解新知识的。 1、将一个带结点的单向链表逆序。 根据是否改变头结点分为2种方法。 变换头结点 思路: 1.声明三指针变量p,q,r, 阅读全文

posted @ 2016-09-23 11:01 会学习的猪 阅读(262) 评论(0) 推荐(0) 编辑

数据结构学习(一)、线性表
摘要:线性表的概述 线性表拥有零个或多个数据元素的有限序列。首先它是一个序列,也就是元素之间有顺序。 线性表分为静态线性表和动态线性表,常见的有顺序线性表(静态)、单向链表(动态)、双向链表(动态) 线性表抽象数据类型定义 顺序表 c语言中的顺序存储可以用一维数组来实现。线性表的顺序存储的结构如下。 初始 阅读全文

posted @ 2016-09-20 17:41 会学习的猪 阅读(474) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示