数据结构与算法
onj123
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
五、数学计算
最大公约数方法:欧几里得互除法,被除数(比较大那个)对除数取模,获得余数。再以除数作为被除数,余数作为除数,再取模。一直循环直到余数为0时的除数就是最大公约数。int fun(int a, int b) {int c = 0;if (a<b) { c = a;a = b;b = c; }while(b!=0){c = a%b;a = b;b = c...原创 2020-01-19 17:54:29 · 340 阅读 · 0 评论 -
四、搜索算法
线性搜索特点:适用于随机的数据,从头开始,一个个查找。随着数据量增大,查找越耗时。步骤:1. i<n时进行查找2. 找到break跳出循环,找不到i++3. 循环结束时,i<n则i是下标,i=n则没找到二分搜索特点:适用于已经排好序的数据,找到中间数据,通过比较判断数据在中间数据的哪一边,再将剩下的数据分为两半,不停查找(查找范围缩小一半)步骤:1. 当查找数据大于1...原创 2020-01-19 17:52:35 · 411 阅读 · 0 评论 -
三、排序算法
所有例子都是升序排序。数据分成两部分:已排序和待排序。排序过程中,数据移动分为两种:1. 直接移动:移动数据的存储位置,消耗时间2. 逻辑移动:改变指向这些数据的指针选择排序特点:遍历待排序数据,把最小值与起始数据(最左边)交换位置次数:第一轮n-1次,第k轮n-k次步骤:1. 如果待排序数据大于0,则循环2,32. 从待排序的数据取第一个值data[i](前面的i-1个数据已...原创 2020-01-19 17:51:33 · 193 阅读 · 0 评论 -
二、数据结构
数组(线性,随机访问)特点:编译时分配存储空间,存储空间连续,可快速查找、修改指定下标的数据,但是插入、删除时需要移动指定下标之后的数据字符串和数组:字符串就是一维数组+结束标志(空字符)链表(线性,顺序访问)特点:包含数据域和指针域,程序执行时分配存储空间,存储空间不连续(数据和存储位置无关),数据可伸缩、定向,可快速插入、删除数据、修改数据,但是查找比较慢(需要从第一个数据开始遍历)...原创 2020-01-19 17:50:35 · 198 阅读 · 0 评论 -
一、时间复杂度
程序 = 数据结构 + 算法1. 数据结构:高效处理大量数据的构造(数据的位置和顺序)2. 算法:解决方案,解决问题的有限步骤优秀的算法1. 准确性(结果正确)2. 可停止性(在有限的时间内结束)3. 程序更高效(更快)4. 花费资源更小(内存和程序存储空间)时间复杂度O(f(n))(衡量算法好坏,总用用了多少步)T(n):程序的运行时间,n是数据输入量f(n):运行时间成...原创 2020-01-19 17:49:02 · 520 阅读 · 0 评论
分享