蓝桥杯算法学习与练习
文章平均质量分 50
选择的是java组,因此基本以java作为语言进行算法练习
ShMzyl
To reach the unreachable star
展开
-
搜索算法学习:BFS
搜索算法学习:BFS广度优先搜索(Breadth FirstSearch,BFS)BFS以广度为第一关键词,当碰到岔道口时,总是先依次访问从该岔道口能直接到达的所有结点,然后再按这些结点被访问的顺序去依次访问它们能直接到达的所有结点,以此类推,直到所有结点都被访问为止。这就跟平静的水面中投入一颗小石子一样,水花总是以石子落水处为中心,并以同心圆的方式向外扩散至整个水面以一个走迷宫问题为例:BFS的实现从上面的概念能看出,BFS可以用队列来实现,且总是按层次的顺序进行遍历,其模板如下:void原创 2021-06-01 14:20:30 · 122 阅读 · 0 评论 -
数据结构学习:链表的基本实现
链表的基本实现,例题:反转链表1.链表的定义:线性表是一类很常用的数据结构,分为顺序表和链表。其中顺序表可以简单地理解成数组这个概念。按正常方式定义一个数组时,计算机会从内存中取出一块连续的地址来存放给定长度的数组;而链表则使由若干个结点组成(每个结点代表一个元素),且结点在内存中的存储位置通常是不连续的。除此之外,链表的两个结点之间一般通过一个指针来从一个结点指向另一个结点,因此链表的结点一般由两部分构成,即数据域和指针域:class Node{ int data; Node next;};原创 2021-05-31 19:29:37 · 128 阅读 · 0 评论 -
贪心算法学习,例题:区间贪心
贪心算法之区间贪心的实现区间贪心:有N个开区间,从中选出尽可能多的开区间,使得这些开区间两两没有交集输入:输入一个数字N,然后输入N个开区间输出:选了多少个开区间,以及这些开区间分别是什么思路:代码:package tanxin;import java.util.List;import java.util.ArrayList;import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;原创 2021-04-07 20:55:57 · 117 阅读 · 0 评论 -
排序算法学习:冒泡、选择、插入排序
算法学习之冒泡、选择、插入排序冒泡排序:思想:代码实现:public class maopao { public static void main(String[] args) { int[] a = new int[]{5,3,2,7,9,11,25,4}; int temp; for(int i=1;i<a.length;i++){ for(int j=0;j<a.length-i;j++){ if(a[j]>a[j+1]){ temp原创 2021-04-04 15:39:54 · 75 阅读 · 0 评论 -
无重复全排列的理解与实现
全排列的数学定义就不再过多解释,考虑递归算法的实现可从下面几点入手(以数组为例,如对其他元素排列,将元素编号放入数组即可):1、一个数的全排列,如排列{1},就是这个数本身这一种情况2、两个数的全排列,如排列{1,2}:第一步:将{1}放在第零个位置,剩下的{2}进行一个数的全排列,结果为{1,2}第二步:将{2}放在第零个位置,剩下的{1}进行一个数的全排列,结果为{2,1}即两个数的全排列为以上2种情况。3、三个数的全排列,如排列{1,2,3}:第一步:将{1}放在第零个位置,原创 2021-04-04 14:06:25 · 861 阅读 · 0 评论