
数据结构
文章平均质量分 61
zhourunan123
这个作者很懒,什么都没留下…
展开
-
数据结构----排序
根据牛客网算法视频以及https://blog.youkuaiyun.com/c406495762/article/details/78979946总结。排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。排序分为内部排序和外部排序。若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则...原创 2018-03-19 22:27:49 · 364 阅读 · 0 评论 -
最大子数组之和
一个整数数组中的元素有正有负,在该数组中找出一 个连续子数组,要求该连续子数组中各元素的和最大,这个连续子数组便被称作最大连续子数组。比如数组{2,4,-7,5,2,-1,2,-4,3}的最大连续子数组为{5,2,-1,2},最大连续子数组的和为5+2-1+2=8。问题输入就是一个数组,输出该数组的“连续子数组的最大和”方法一:枚举法枚举所有的子数组并求出他们的和,长度为n的数组,有n(n...原创 2018-08-31 19:30:37 · 498 阅读 · 0 评论 -
C语言实现----快速排序
1.快速排序是一种交换排序2.基本思想: 选取一个基准数; 然后将大于和小于基准的元素分别放置于基准数两边; 继续分别对按此方法分治基准数的两侧,直至整个序列有序。3. 注意问题 基准数的选择(通常选取头元素或者尾元素) 元素的查找(一组一组的查找需要交换的元素) 递归调用(终止递归...原创 2018-07-15 00:17:24 · 41054 阅读 · 7 评论 -
二分查找
1. 二分查找又称折半查找2. 优点: 比较次数少 查找速度快 平均性能好3. 缺点: 待查表为有序数组(若为无序数组,分成两份查找无意义,排序本身也耗费时间) 插入删除困难(增删需要移动大量的节点)4.思想: 在一个有序数组中,取数组的中间值与要查找的数进行比较; ...原创 2018-07-14 23:27:16 · 171 阅读 · 0 评论 -
算法分析与设计----动态规划
动态规划的原理基本思想:将待求问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。基本要素: 最优子结构 重叠子问题设计动态规划算法的步骤:找出最优解的性质,并刻画其结构特征;递归地定义最优值;以自底向上的方式计算最优值;根据计算最优值时得到的信息构造最优解。动态规划与分治法的异同共同点:将待求解的问题分解成若干子问题,先求解子问题,...原创 2018-07-24 21:36:53 · 428 阅读 · 0 评论 -
数据结构----冒泡排序
冒泡排序(Bubble Sort)一种交换排序。基本思想:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。以升序冒泡为例:每趟排序过程中通过两两比较相邻元素,将小的数字放到前面,大的数字放到后面。核心代码:void BubbleSort(int arr[],int size){ int i,j,t; // 要遍历的次数,第i趟排序 for(i = 1; i < siz...原创 2018-05-05 17:02:38 · 19213 阅读 · 2 评论 -
数据结构----单链表
链表的存储结构:带指针的结构体来定义结点:结点:数据域:存储数据元素信息的域指针域:存储直接后继位置的域 typedef struct LNode{ ElemType data; struct LNode *next;}LNode, * LinkList;//struct LNode 构成一个结构类型;// ElemType 元素的类型//用struct LNode 或...原创 2018-04-02 23:13:05 · 348 阅读 · 0 评论 -
数据结构----查找
查找就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素。一、静态查找表:1.顺序表的查找:顺序查找(Sequential Search)的查找过程:从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功,找到所查的记录;反之,若直到第一个记录,其关键字和给定值比较都不相等,则表明表中没有所查记录,查找不成功。顺序表查找的算...原创 2018-03-20 14:18:39 · 192 阅读 · 0 评论 -
数据结构----快速排序
快速排序(Quick Sort)是对冒泡排序的一种改进。基本思想:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,再对两部分记录分别进行继续排序,使得整个记录有序。首先任选一个记录(通常选第一个记录)作为枢轴(或支点)privot。一趟快速排序的做法:附设两个指针low和high,它们的初始值分别为low和high,设枢轴记录的关键字为privotkey,首...原创 2018-03-19 23:17:06 · 421 阅读 · 0 评论 -
二分查找总结
1.二分查找又称折半查找2.优点:比较次数少;查找速度快;平均性能好3.缺点:待查表为有序数组(若为无序数组,分成两份查找无意义,排序本身也耗费时间);插入删除困难(增删需要移动大量的节点)4.思想:在一个有序数组中,取数组的中间值与要查找的数进行比较;若要查找的数等于中间值,查找成功;若要查找的数大于中间值,则在右半区间继续取中间值与要查找的数进行比较;若要查找的数小...原创 2018-09-02 00:47:59 · 4454 阅读 · 0 评论