
数据结构
开心生活_
这个作者很懒,什么都没留下…
展开
-
最基本的排序方法--C语言
目录前言稳定排序插入排序冒泡排序归并排序不稳定排序选择排序快速排序前言经典的排序和查找方法是每个人都要掌握的,为了更加深刻的记忆它们,我把排序方法记录在这条菜鸟走向大神的罗马大道上。希望这篇文章可以帮到更多的人。这篇文章的初步分为稳定排序和不稳定排序两个部分,稳定又代表了什么呢,下面有一个数组:arr[ 5, 5, 2, 1, 3],里面有两个数值相等的5,我们加一个符号标记不同位置的5。经过稳定排序后:arr[1, 2, 3, 5, 5] 发现他们的相对位置不改变;而经过不稳定排序后(如快速排原创 2020-09-30 11:34:48 · 425 阅读 · 0 评论 -
墙壁涂色问题--动态规划
问题描述给一个环形的墙壁涂颜色,颜色一共有 k 种,墙壁被竖直地划分成 n 个部分,相邻的部分颜色不能相同。请你写程序计算出一共有多少种给墙壁上色的方案?例如,当 n=5,k=3 时,下面是一种合法的涂色方案而由于墙壁是环形的,所以下面就是一种非法的方案输入输入两个数字 n,k(1≤n≤103,2≤k≤10),分别代表墙壁数量和颜色种类。输出对于每个询问,输出一行整数,合法的墙壁涂色方案数。样例输入15 3样例输出130数据规模与约定时间限制:5 s内存限制:256 M原创 2020-09-29 19:17:40 · 1566 阅读 · 1 评论 -
广搜走地图问题
广搜走地图问题一般用来解决从起点到达目的地的最短路径问题。首先我们来看一下广搜所需要的知识点一节小技巧:结构体:记录走到(x,y)点的所消耗的代价,即步数。队列。从起点开始,首先将起点放入队列里,然后就每次从队列里面取出一个节点,从当前点开始向周围遍历,可以走到的节点就进队列,直到队列为空或者找到目标位置。从(1,1)开始存,防止潜在的越界所发生的段错误。方向数组:通过方向数组来找到和所在位置有接触的点(下一个位置)方向数组的4个方向(或者8个)千万不要写错。下面我们来一个例子来说明:问题描述原创 2020-09-24 18:34:32 · 264 阅读 · 0 评论