
算法
小龙在山东
本博客为个人整理的技术笔记,仅用于学习。
展开
-
二叉树的遍历规则(前序遍历、后序遍历、中序遍历)
树的遍历顺序大体分为三种:前序遍历(先根遍历、先序遍历),中序遍历(中根遍历),后序遍历(后根遍历)。如图所示二叉树:前序遍历:前序遍历可以记为根左右,若二叉树为空,则结束返回。前序遍历的规则:(1)访问根节点(2)前序遍历左子树(3)前序遍历右子树这里需要注意:在完成第2,3步的时候,也是要按照前序遍历二叉树的规则完成。前序遍历的输出结果:ABDECF中序遍历:中序遍历可以记...原创 2018-09-29 15:17:07 · 4882 阅读 · 0 评论 -
理解矩阵三篇
理解矩阵(一)前不久chensh出于不可告人的目的,要充当老师,教别人线性代数。于是我被揪住就线性代数中一些务虚性的问题与他讨论了几次。很明显,chensh觉得,要让自己在讲线性代数的时候不被那位强势的学生认为是神经病,还是比较难的事情。可怜的chensh,谁让你趟这个地雷阵?!色令智昏啊!线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院...原创 2018-10-19 14:50:34 · 524 阅读 · 0 评论 -
枚举排列
求1~n的全排列// 求1~n的全排列. n<100// Rujia Liu#include<cstdio>using namespace std;int A[101];// 输出1~n的全排列void print_permutation(int n, int* A, int cur) { if(cur == n) { // 递归边界 for(int...原创 2018-10-31 10:16:42 · 462 阅读 · 0 评论 -
生成子集
增量构造法// {0~n-1}的所有子集:增量构造法// Rujia Liu#include<cstdio>using namespace std;void print_subset(int n, int* A, int cur) { for(int i = 0; i < cur; i++) printf("%d ", A[i]); // 打印当前集合 ...原创 2018-10-31 13:12:18 · 398 阅读 · 0 评论 -
回溯法解决N皇后问题
八皇后问题在棋盘上放置8个皇后,使得它们互不攻击,此时每个皇后的攻击范围为同行同列和同对角线,要求找出所有解。递归函数将不再递归调用它自身,而是返回上一层调用,这种现象称为回溯(backtracking)。当把问题分成若干步骤并递归求解时,如果当前步骤没有合法选择,则函数将返回上一级递归调用,这种现象称为回溯。 正是因为这个原因,递归枚举算法常被称为回溯法,应用十分普遍。生成-测试法(低效...原创 2018-11-01 10:49:18 · 6264 阅读 · 0 评论 -
Python解释中心极限定理
中心极限定理指的是给定一个任意分布的总体。我每次从这些总体中随机抽取 n 个抽样,一共抽 m 次。 然后把这 m 组抽样分别求出平均值。 这些平均值的分布接近正态分布。import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontProperties# 设置字体,避免乱码...原创 2019-02-15 13:08:40 · 3732 阅读 · 0 评论 -
秩
矩阵是表示系统信息的表格,也就是数排成一个矩形的数表的形式,什么是矩阵的秩呢?秩在中文中的引申义是次序有序的意思。首先要明确,秩是一个数,并且是一个自然数,只能取 0,1,2,3,4,当我们说一个矩阵的秩是几的时候,我们到底在说什么?第一个角度,也就是书本上的定义,矩阵中的任意一个r阶子式不为0,且任意的r+1阶子式为0,则阶数r就叫作该矩阵的秩。什么意思呢?就是对一个矩阵,存在某个r阶行列...原创 2019-03-13 11:52:20 · 1879 阅读 · 0 评论 -
归并排序 图解
图示过程(1) 归并排序的流程(2) 合并两个有序数组的流程动图展示Java代码实现public static void mergeSort(int[] arr) { sort(arr, 0, arr.length - 1);}public static void sort(int[] arr, int L, int R) { if(L == R) { ...原创 2019-08-29 18:03:11 · 434 阅读 · 0 评论