![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
洁洁好累
这个作者很懒,什么都没留下…
展开
-
Java-DFS和BFS
回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和。...原创 2022-08-17 14:44:23 · 239 阅读 · 0 评论 -
(交换排序)冒泡排序
一.冒泡排序a.初始状态 有序区域【】没有元素,元素都在无序区b.【1,4,9,3,5,6,2】元素从右到左边比较边交换,第一趟【1】【4,9,3,5,6,2】c.重复到某次排序过程中一次交换也没有时,可以提前结束排序d.冒泡排序最多进行n-1次#include<iostream>using namespace std;void bubble_sort(int list[],int len){ int temp; for(int i=0;i<len-1;i++){ i原创 2021-12-21 19:21:28 · 58 阅读 · 0 评论 -
算法合集 棋盘 快速 归并 二分查找 01背包回溯 贪心-背包 8皇后 prim 克鲁斯卡尔 贪心-哈夫曼 最大子段和 矩阵连乘
#include<iostream>using namespace std;int tile = 1;void CB(int tr,int tc,int dr,int dc,int size){ if (size == 1) return; int t = tile++; //L型骨牌顺序号 int s = size/2; //分割棋盘 //处理左上角子棋盘 if (dr < tr + s && dc < tc + s) //特殊方格在此棋盘中原创 2021-05-10 16:18:11 · 195 阅读 · 0 评论 -
快速排序c++
快速排序1、快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。2、快速排序的三个步骤:(1)选择基准:在待排序列中,按照某种方式挑出一个元素,作为 “基准”(pivot)(2)分割操作:以该基准在序列中的实际位置,把序列分成两个子序列。此时,在基准左边的元素都比该基准小,在基准右边的元素都比基准大(3)递归地对两个序列进行快速排序,直到序列为空或者只有一个元素。在这里插入代码原创 2021-04-04 23:19:39 · 1062 阅读 · 1 评论 -
二分查找 c++
二分查找/*功能:二分查找作者:ltj创作时间:2021/3/15 */#include<iostream>using namespace std;int BSearch(int list[],int key,int low,int high){ //递归法 数组,关键字,第一个位置数组下标,最后位置数组下标 if(low<=high){ int mid=(high+low)/2; if(key==list[mid]){ //当要查找的值等于中间值时原创 2021-03-15 21:16:03 · 202 阅读 · 0 评论