C/C++
文章平均质量分 56
啊霆
这个作者很懒,什么都没留下…
展开
-
分治解决归并排序
分治基本概念:把一个任务分成形式和原任务相同,但规模更小的几个部分子任务,分别完成,或只需要选一部分完成。然后再处理完成后的这一个或几个部分的结果,实现整个任务的完成。动态规划基本概念:通常许多子问题非常相似,为此动态规划试图仅仅解决每个子问题一次,从而减少计算量,算出子问题的解之后,则将其记忆化存储。归并排序的解题思路:数组排序任务可以按如下步骤完成:(1)把前一半排序(2)把后一半排序(3)把两半归并到一个新的有序数组,然后再拷贝回原数组,排序完成类似这样的,可以用两个指针p1,p2原创 2021-01-24 17:47:25 · 203 阅读 · 0 评论 -
数字三角形递归与递推
如图所示的数字三角形:73 88 1 02 7 4 44 5 2 6 5在这样一个数字三角形中寻找一条从顶点到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或者右下走,只需要求出这个最大和即可,不必给出具体路径。解题思路:此题为动态规划的典型运用,做此分析,要求顶部到底边的最大和,则从左下或者右下走到底边的和也是最大的,问题的最优解也是子问题的最优解,有递归和递推两种解法,在使用递归时,要记得原创 2021-01-24 17:09:15 · 556 阅读 · 0 评论 -
递增的整数序列链表的插入(不带头结点)
题目背景:本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。函数接口定义:List Insert( List L, ElementType X );其中List结构定义如下:typedef struct Node PtrToNode;struct Node {ElementType Data; / 存储结点数据 /PtrToNode Next; / 指向下一个结点的指针 /};typedef PtrToNode List; / 定义单链表类原创 2020-10-09 11:06:39 · 422 阅读 · 0 评论 -
关于共用体的一个例子
共用体定义形式如下:union 共用体名{类型名 成员1;类型名 成员2;…类型名 成员 n;}由于各个成员变量在内存中都是用同一段存储空间,因此共用体变量的长度等于最长成员的长度。此外介绍一下数组在内存中的存储方式。例如 int a[5];#include<stdio.h>int main() { union key { int k; char ch[2]; }u; u.k = 258; printf("%d %d\n", u.ch[原创 2020-10-04 10:34:58 · 954 阅读 · 0 评论 -
删除容器中重复的元素
先看一个例子:a[]={8,7,8,9,6,2,1},a这个数组中一共有7个元素,其中8重复,8有两个。如果要删除8这个元素的话,可以有用两种方法解决。一.调用vector容器的erase函数删除#include<iostream>#include<vector>#include<algorithm>#include<iterator>using namespace std;int main() { int a[] = { 8,7,8,9,6,原创 2020-05-31 17:48:16 · 1111 阅读 · 0 评论 -
C++ list 解决约瑟夫问题
约瑟夫问题所述:猴子选王有n只猴子,按顺时针方向围成一圈选大王(编号为1-n),从第一号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数,就这样,直到圈中只剩下一只猴子时,这个猴子就是猴王。编程输入n,m后,输出最后猴王的编号。输入样例: 6 212 48 30 0输出样例:517简述要点:1.循环的条件是只要还有不止一只猴子,就让其出列,直到最后只剩下...原创 2020-05-01 22:46:55 · 1202 阅读 · 0 评论 -
C++排序二分查找
简单来说就是输入一个数组,注意是无序的,因为二分查找只能查找有序的,所以在给数组赋值之后,对数组进行排序。排序的方法有很多,在此我写的是冒泡排序,排序之后是降序的。其中bubblesort(int array[],int length),length代表数组长度,int array[]可以替换成int * array ,没有影响。对于降序,C++sort函数有着很好的应用。 在此给出链接,这...原创 2020-04-20 13:04:51 · 1047 阅读 · 0 评论