数据结构与算法
文章平均质量分 65
大学课程《数据结构与算法》例题讲解与学习。
林小鹿@
后端开发,热衷于算法,每日更新高质量算法题解。
展开
-
编写程序用减治法实现折半查找,要求输入数字,输出其位置。(给出运算结果截图)
题目编写程序用减治法实现折半查找,要求输入数字,输出其位置。(给出运算结果截图)输入格式第一行包含整数 n 和 x,表示数组长度和要查询的数。第二行包含 n 个整数(均在 1∼10000范围内),表示完整数组。输出格式输出x的具体位置。输入样例8 51 2 3 4 5 6 7 8输出样例4思路折半查找即二分查找,我们二分查找小于等于x的最大边界。代码#include<stdio.h>const int N = 10010;int a[N];int mai原创 2021-04-17 09:54:17 · 579 阅读 · 0 评论 -
设计算法,在数组r[n]中删除所有元素值为x的元素,要求时间复杂度为O(n),空间复杂度为O(1)。
设计算法,在数组r[n]中删除所有元素值为x的元素,要求时间复杂度为O(n),空间复杂度为O(1)。1、思路我们遍历整个原数组,当原数组的值等于x时,我们跳过不进行处理,否则我们将该值记录到新的数组中。这样我们遍历整个数组的时间复杂度是O(n),而删除指定元素的时间复杂度为O(1)。除去原数组和新数组的空间复杂度为O(n),在此过程中,指定元素x的空间复杂度为O(1)。核心代码:int k = 0; for(int i = 0; i < n; i++) { if(a[i] == x原创 2021-03-28 10:44:46 · 4360 阅读 · 3 评论 -
探寻宝藏 【算法设计与分析课设】 c语言代码 + 思路详解 + 三维优化
目录1、题目2、思路13、代码14、思路25、代码21、题目传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物。某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷宫的进出口在左上角。当然,迷宫中的通路不是平坦的,到处都是陷阱。Dr.Kong决定让他的机器人卡多去探险。但机器人卡多从左上角走到右下角时,只会向下走或者向右走。从右下角往回走到左上角时,只会向上走或者向左走,而且卡多不走回头路。(即:一个点最多经过一次)。当然卡多顺手也拿走沿路的每个宝物。Dr.K原创 2021-06-26 19:14:21 · 6376 阅读 · 46 评论 -
将两个及其以上的有序表合并为一张有序表,把待排序序列通过分治法分为若干个有序子序列,然后每两个子序列合并为一个子序列,经过多次合并后整合为一张有序表(给出代码实现以及运行结果)。
归并排序介绍归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)(DivideandConquer)(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序的基本思想:将两个及其以上的有序表合并为一张有序表,把待排序序列通过分治法分为若干个有序子序列,然后每两个子序列合并为一个子序列,经过多次合并后整合为一张有序原创 2021-04-10 08:13:25 · 715 阅读 · 0 评论 -
设计算法求数组中相差最小的两个元素(称为最接近数)的差。要求分别给出伪代码和C++描述。
1.题目设计算法求数组中相差最小的两个元素(称为最接近数)的差。要求分别给出伪代码和C++描述。2.算法分析思路:1.对数组先进行快速排序,使数组有序2.依次比较相邻两数的差,更新最小值3.快速排序模板: void quick_sort(int q[], int l, int r){ //递归的终止情况 if(l >= r) return; //第一步:分成子问题 int i = l - 1, j = r + 1, x = q[l + r >>原创 2021-03-07 11:10:13 · 9979 阅读 · 2 评论 -
一元稀疏多项式计算器 【 数据结构课设作业 】 带界面,无bug,可以直接运行
一元稀疏多项式计算器问题描述设计一个一元稀疏多项式简单计算器。基本要求(1)输入并建立多项式。(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,cn,en,其中n是多项式的项数,ci,ei分别是第i 项的系数和指数,序列按指数降序排列。(3)实现多项式a和b相加,建立多项式a+b。(4)实现多项式a和b相减,建立多项式a-b。(5)计算多项式在x处的值。(6)计算器的仿真界面。测试数据第一组:5x^8-3.1x^11+2x11x^9-5x^8+7第二组:原创 2021-01-11 19:01:20 · 5351 阅读 · 3 评论 -
一元稀疏多项式计算器 【 数据结构课设 】 仿真界面 + 代码详解
一元稀疏多项式计算器问题描述设计一个一元稀疏多项式简单计算器。基本要求(1)输入并建立多项式。(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,cn,en,其中n是多项式的项数,ci,ei分别是第i 项的系数和指数,序列按指数降序排列。(3)实现多项式a和b相加,建立多项式a+b。(4)实现多项式a和b相减,建立多项式a-b。(5)计算多项式在x处的值。(6)计算器的仿真界面。相关代码#define _CRT_SECURE_NO_WARNINGS #incl原创 2021-01-08 18:09:27 · 16533 阅读 · 14 评论 -
建立一个由多种化妆品品牌价格组成的二叉树,并采用递归和非递归方法进行数据的遍历,按照遍历情况进行打印输出
实验名称二叉树的应用实验题目建立一个由多种化妆品品牌价格组成的二叉树,并采用递归和非递归方法进行数据的遍历,按照遍历情况进行打印输出。具体功能包括:(1)按照先序遍历创建一棵二叉树,各结点值为化妆品品牌价格;(2)采用递归方法进行二叉树的前序、中序和后序遍历;(3)采用非递归方法进行二叉树的前序、中序和后序遍历;代码#define _CRT_SECURE_NO_WARNINGS #include<iostream>#include<cstdio>#inclu原创 2020-12-20 20:01:26 · 1112 阅读 · 0 评论 -
设计一个排序和查找系统。能够实现对给定的一组学生的借书证信息(如:卡号、姓名、系别、班号等)进行排序和查找。
目录实验目的实验题目排序模板实验源代码实验结果实验目的了解各种内部排序方法,掌握Shell排序、快速排序、堆排序,归并排序的排序方法,并将其运用到实际问题中。实验题目设计一个排序和查找系统。能够实现对给定的一组学生的借书证信息(如:卡号、姓名、系别、班号等)进行排序和查找。排序模板1.快速排序void quick_sort(Node q[], int l, int r) { if (l >= r) return; int i = l - 1, j = r + 1, x = q[(l原创 2020-12-09 12:10:16 · 2871 阅读 · 0 评论