
数据结构篇
算法
C_IS_ALL
嵌入式、视频、软件开发、硬件开发
展开
-
12-数据结构-排序
序列:arr1[] = {9,8,7,6,5,4,3,2,1,0},如果用直接插入排序,那么需要往后移动元素的次数为n*(n-1)/2,也就是45次;序列呢:arr2[] = {0,1,2,3,5,4,8,7,6,9};(2)第二次步长:step = step(这里的step为第一次的step的值)/2 => 4/2 = 2;父节点下标为k(k>0),那么其左孩子下标为2*k,右孩子下标为2*k+1。再6,3,9,8比,1,2,7,4比。先9与6,7和1,8和3,4和2比。和二路归并类似,不做具体描述。原创 2024-01-01 16:20:55 · 418 阅读 · 3 评论 -
05-数据结构-串
* 串的头和尾指针 */int curlen;/* 串的当前长度 *///CHUNKSIZE为结点大小,可以配置。//删除S串从pos位置起的len长度的串。常规的字符匹配算法较简单,此处不举例说明。如下:采用malloc得free操作内存。//用V替换主串S中出现的与T相同的子串。//在串S的pos位置插入T。//返回T在S中的位置。1.子串位置的定位函数。二、串的常见基本操作。三、串的模式匹配算法。原创 2023-12-20 15:32:14 · 134 阅读 · 0 评论 -
03-数据结构-栈与队列
队列是先进先出,如上图所示,队列从队尾入队,从队头出队。队列有顺序队列,链队列和循环队列。队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现。栈:先进后出,入栈(数据进入) 和出栈(数据出去)均在栈顶操作。栈和队列是两种操作受限的线性表。如上图所示显示栈的结构。2.1 链队列的代码实现。1.1 栈的代码实现。原创 2023-12-19 15:12:11 · 554 阅读 · 0 评论 -
02-数据结构-线性表
PriorElem(L,cur_e,&pre_e)//cur_e是L的元素不是第一个, 返回他的前驱元素。NextElem(L,cur_e,&next_e)//cur_e是L的元素不是第一个, 返回他的后继元素。LocateElem(L,e,compare())//返回第1个满足对比关系元素的位置。ListTraverse(L,visit())//每一个元素调用visit()操作。ListDelete(&L,i,&e)//指定位置删除元素。GetElem(L,i,&e)//返回对应的元素。原创 2023-09-22 20:49:47 · 281 阅读 · 4 评论 -
01-数据结构-时间复杂度与空间复杂度
现代计算机系统,内存的容量一般都比较大,因为相比较时间复杂度而言,关注的并不是很多,后面我们主要讨论时间复杂度。无论代码执行了多少行,只要是没有循环等复杂结构,那这个代码的时间复杂度就都是O(1)算法是实现解决程序问题的方法,衡量算法的好坏一般从时间和空调两个方面来衡量,按下面例子所示,k是多少,对应多少的for循环。时间复杂度是采用的: 大O符号表示法。4.线性对数阶O(nlogN)比如下面的复杂度是O(m*n)3.对数阶O(logN)为n * O(logN)5.K次方阶O(n^k)原创 2023-09-30 19:40:14 · 66 阅读 · 0 评论