![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
啊哈!算法系列
Du_Chunfeng
大学生
展开
-
坑爹的奥数
小风在数学课上遇到一道奥数题是这样的,□3×6528=3□×8256,在两个□内填入相同数字使得等式成立。你可能觉着这个太简单了!#include <stdio.h>int main(){ for(int i=0;i<=9;i++)//从0到9遍历 { if(((i*10)+3)*6528==(30+i)*8256)//第一个是十位,第二个是...原创 2019-12-15 14:47:58 · 1247 阅读 · 0 评论 -
模拟链表
链表还有另外一种使用数组来实现的方式,叫做模拟链表。链表中的每一个结点只有两个部分。我们可以用一个数组data来存储每个序列中的每一个数,那每一个数右边是谁,这一点该怎么解决呢?上一节中是使用指针来解决的,这里我们只需要再用一个数组right来存放序列中每一个数右边的数是谁就可以了。上图的两个数组中,第一个整形数组data是用来存放序列中具体数字的,另外一个整形数组right是用来存放当前序...原创 2019-12-07 16:56:01 · 570 阅读 · 0 评论 -
链表
链表的创建、插入关于链表的操作,其实,我自我感觉没有什么好说的。只要把指针学好,so easy!!但是有一个地方需要注意一下,malloc函数的返回类型是void类型。void表示未确定类型的指针。在C和C++中,void*类型可以强制转换为任何其他类型的指针。就像int *p;p= (int *)malloc(sizeof(int));中我们将其强制转化为整形指针,以便告诉计算机这里的4个...原创 2019-12-06 14:54:47 · 142 阅读 · 0 评论 -
纸牌游戏——兄弟俩的“博弈”(栈和队列的应用)
小风和小雷是一起玩到大的双胞胎兄弟,星期天,小风和小雷在一起玩桌游,他们正在玩一个非常古怪的扑克游戏——“小猫钓鱼”。游戏规则是这样的:将一副扑克牌平均分成两份,每人拿一份。小风先拿出手中的第一张扑克牌放在桌子上,然后小雷也拿出手中的第一张扑克牌,并放在小风刚打出的扑克牌的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上的某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依...原创 2019-12-05 13:10:48 · 800 阅读 · 0 评论 -
解密回文——栈
栈是一种后进先出的数据结构。栈限定位只能在一端进行插入和删除操作。比如,浏览网页的时候需要回退到之前的某个网页,我们需要一步步地点击后退键。下面我们将用栈的数据结构判断一个字符串是否为回文。“xyzyx”是一个回文字符串,所谓回文字符串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“aha”和“ahaha”均是回文,但“ahah”不是回文。输入一行字符(仅包含小写英文字母a~z)...原创 2019-12-04 17:08:50 · 303 阅读 · 0 评论 -
解密QQ号——队列
队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为“出队”,而在队列的尾部(tail)进行插入操作,这称为“入队”。当队列中没有元素是(即head == tail),称为空队列。队列遵循“First In First Out”原则。下面看一道题新学期开始了,小哈是小哼的新同学,小哼向小哈询问QQ号,小哈当然不会直接告诉小哼。所以小哈给了小哼一串加密过的数字,同时小...原创 2019-12-03 16:07:50 · 403 阅读 · 0 评论 -
小哼买书(三种排序算法的应用)
小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读哪些书。小哼让每个同学写出一个自己最想读的书的ISBN号(你知道吗?每本书都有唯一的ISBN号,不信话你去找本书翻到背面看看)。当然有一些好书会有很多同学都喜欢,这样就会收集到很多重复的ISBN号。小哼需要去掉其中重复的ISBN号,即每个ISBN号只保留一个,也就说同样的书只买一本(学校真是够抠门的)。然后再把这些ISBN...原创 2019-12-02 14:26:53 · 601 阅读 · 0 评论 -
最常用的排序——快速排序(豆包”鹊桥“相见)
快速排序的方法:假设现在对 6 1 2 7 9 3 4 5 10 8这10个数进行排序。分析:1、我们首先要找一个数作为基准数(当然,基准数是自己随便定的,一般是找第一个数作为基准数)2、分别从初始序列”6 1 2 7 9 3 4 5 10 8“两端开始”探测“。先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换它们。这里可以用两个变量i和j,分别指向序列最左边和最右边。刚开...原创 2019-12-01 13:39:25 · 469 阅读 · 0 评论 -
邻居好说话——冒泡排序
冒泡排序的基本思想:每次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。例如:需要将12 35 99 18 76 这5个数进行从大到小排序。也就是说越小的越靠后分析:首先比较的第一位和第二位的大小,12比35小,因为是从大到小排序,所以他们两个需要换一下,交换之后的顺序:35 12 99 18 76。按照刚才的方法,继续比较第二位和第三位得到的顺序:35 99 12 18 76...原创 2019-12-01 00:37:17 · 165 阅读 · 0 评论 -
最快最简单的排序——桶排序(简化版)
运用桶排序把五个人的成绩进行排序 5 5 8 2 4(满分10分)从小到大排序,或者从大到小排序。方法:这个算法就好比有11个桶(0-10)代表多少分,初始化都是0分,每出现一个分数就会相对应的桶就会加上1(相当于有一个标记说明,已经有一个值了,比如第一个数是5,就在a[5]++),依次类推。这样出现的效果图为:最后由小到大,由大到小,只是这个一维数组的前后遍历的顺序,需要注意的是,要注...原创 2019-11-26 20:39:12 · 231 阅读 · 0 评论