![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
陈越,何钦铭-数据结构源码
符义的博客
平淡的时光随风而逝,无人聆听。
展开
-
求第K大数——递归
查找第k位数。运行效率比以前用希尔排序的要高很多。话不多说,直接上代码讲解需要注重的地方。void swap(float *a,float *b)//利用地址交换值,没什么好说的{ float temp=*b; *b=*a,*a=temp;}float find(float a[],int k,int left,int right){ float e=a[left]; int l=left,r=right; while(1) {原创 2021-01-08 17:45:25 · 445 阅读 · 0 评论 -
汉诺塔问题——递归实现
寒假打算码一遍数据结构(浙大版)上的代码,遇到了以前没弄懂的汉诺塔问题,后面上B站搜索看了一下教程,遇到一个讲的比较好的视频,感兴趣的可以自己看下(网址https://www.bilibili.com/video/BV1gt411P7yW)。这篇博文实际上不太涉讲解,即使涉及了,也会比较浅,说白了只是一篇我回顾复习的博文。思路推导:从两个圆盘开始,假设三根插柱分别为 A B C,目标柱为C,那么辅助柱为B,(当然了也可以目标柱为B,辅助柱为C)。首先将小的移动到B ,然后将大的移动到C,再然后移动小原创 2021-01-07 22:10:03 · 245 阅读 · 2 评论 -
最大子列和——分而治之、在线法
题源:实例1.1 最大子列和问题 (20分) ,PTA分而治之:#include<stdio.h>#include<stdlib.h>int max3(int a, int b, int c);int divideandconquer(int a[] , int left ,int right);int maxsubseqsum(int a[], int n);int main(){ int n; scanf("%d",&n); int *a=(int原创 2021-01-06 17:25:36 · 253 阅读 · 0 评论 -
陈越、何钦铭-数据结构-代码实操02-线性结构1 两个有序链表序列的合并 (15分)
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */原创 2020-10-14 23:43:42 · 159 阅读 · 0 评论 -
01-复杂度3 二分查找 (20分)
本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */};L是用户传入的一个线性表,其中ElementType元素可以原创 2020-10-14 22:00:42 · 85 阅读 · 0 评论