算法
文章平均质量分 60
AI AX AT
这个作者很懒,什么都没留下…
展开
-
Python——动态规划
目录什么是动态规划参考资料什么是动态规划参考资料告别动态规划,连刷 40 道题,我总结了这些套路,看不懂你打我(万字长文)原创 2022-03-02 16:12:02 · 844 阅读 · 0 评论 -
BFS题目专栏
目录1091. 二进制矩阵中的最短路径1091. 二进制矩阵中的最短路径题目来自leetcode给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1 。二进制矩阵中的畅通路径是一条从 左上角 单元格(即(0, 0))到 右下角 单元格(即,(n - 1, n - 1))的路径,该路径同时满足下述要求:路径途经的所有单元格都的值都是 0 。路径中所有相邻的单元格应当在 8 个方向之一 上连通(即,相邻两单元之间彼此不同且共享一条边或者原创 2022-02-26 20:35:32 · 520 阅读 · 0 评论 -
希尔排序——C++实现
#include<iostream>#include<string>using namespace std;int main(){ int arraysize = 10; int array[10] = {8,9,1,7,2,3,5,4,6,0}; for(int gap=int(arraysize/2);gap>=1;gap=int(gap/2)){ for(int i=gap;i<=arraysize;i++){原创 2021-08-26 00:11:45 · 608 阅读 · 0 评论 -
选择排序——C++实现
目录1. 简介2. 原理3. 代码1. 简介选择排序(Selection sort)是一种简单直观的排序算法。选择排序是不稳定的排序方法。2. 原理在一个长度为 N 的无序数组中,第一次遍历 n-1 个数找到最小的和第一个数交换。第二次从下一个数开始遍历 n-2 个数,找到最小的数和第二个数交换。重复以上操作直到第 n-1 次遍历最小的数和第 n-1 个数交换,排序完成。算法可视化:3. 代码#include<iostream>#include<string&g原创 2021-08-23 10:55:07 · 149 阅读 · 0 评论 -
插入排序——C++实现
这里写目录标题1. 简介2. 原理3. 代码实现1. 简介插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。在插入排序中,当待排序数组是有序时,是最优的情况,只需当前数跟前一个数比较一下就可以了,这时一共需要比较N- 1次,时间复杂度为O(N)。在插入排序中,最坏的情况是待排序数组是逆序的,此时需要比较次数最多,总次数记为:1+2+3+…+N-1,所以,插入排序最坏情况下的时间复杂度为O(N^2)。在插入排序中,插入排序的平均时间复杂度也是 O(n^2)。2. 原理实原创 2021-08-22 23:39:40 · 359 阅读 · 0 评论 -
冒泡排序——C++实现
目录1. 简介2. 原理3. C++代码3.1 普通版:3.2 进阶版1. 简介冒泡排序(Bubble Sort)是一种计算机科学领域的较简单的排序算法。若文件的初始状态是正序的,一趟扫描即可完成排序。冒泡排序最好的时间复杂度为O(n)。若初始文件是反序的,需要进行n-1趟排序。冒泡排序的最坏时间复杂度为O(n^2)。冒泡排序总的平均时间复杂度为O(n^2)。2. 原理比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点原创 2021-08-22 17:05:11 · 399 阅读 · 0 评论