- 博客(55)
- 资源 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 排序算法 | 堆排序,算法的图解、实现、复杂度和稳定性分析
今天讲解一下堆排序的原理以及实现、复杂度和稳定性分析目录1 堆的定义2 堆排序的思路3 代码实现4 堆的输出(删除操作)5 堆的插入操作6 堆排序的特点7 性能分析1 堆的定义堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。定义:n个关键字序列L[1…n]称为堆,当且仅当该序列满足:① L(i)>=L(2i) 且 L(i)>=L(2i+1)或.
2021-06-16 03:19:26
2463
35
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 排序算法 | 快速排序,算法的图解、实现、复杂度和稳定性分析与优化
排序算法 | 交换排序 二:快速排序算法的图解、实现、复杂度和稳定性分析与优化
2021-06-14 01:53:48
1213
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 计算机网络(四)数据交换方式过程,图文详解、优缺点分析(电路交换、报文交换、分组交换)
目录前言为什么需要进行数据交换?1 电路交换1.1什么是电路交换?过程?1.2 原理与特点1.3 优缺点分析2 报文交换2.1 报文交换的定义、过程2.2 报文交换的原理、优缺点分析3 分组交换3.1 什么是分组交换?3.2 分组交换原理3.3 分组交换的优缺点分析3.4 三种交换方式的选择4 数据报与虚电路4.1 数据报方式流程、特点4.2虚电路方式流程、特点4.3 数据报与虚电路的 比较前言为什么需要进行数据交换?因为传输线路是大家公用的(节省通信线路,降低费用),所以在传输的时候,需要由交换设.
2021-06-12 02:15:17
7266
11
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Python3算法基础练习:编程100例( 36 ~ 40 )
上期文章:Python3算法基础练习:编程100例( 31 ~ 35 )目录36 求100以内的素数37 数字排序38 求对角线元素之和39 数组插入数字保持有序36 求100以内的素数题目:求100以内的素数指素数在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数代码:# 求100之内的素数。from sys import stdoutfor i in range(1,100 + 1): if i > 1: for n in range(
2021-06-11 23:59:21
3227
21
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 12个python超强学习网站!加python书籍推荐!( 入门python自学推荐!建议收藏!)
python超强学习网站推荐!适合小白和零基础的同学快速学习python,快速入门这门语言
2021-06-07 19:08:00
2545
7
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Python3算法基础练习:编程100例( 21~ 25)
往期练习:Python3算法基础练习:编程100例(1~5)Python3算法基础练习:编程100例(6 ~ 10)Python3算法基础练习:编程100例(11 ~ 15)Python3算法基础练习:编程100例(16 ~ 20)目录21 猴子吃桃问题22.乒乓比赛23.打印菱形21 猴子吃桃问题题目:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子
2021-06-05 02:46:32
1396
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Python3算法基础练习:编程100例(16 ~ 20)
往期练习:Python3算法基础练习:编程100例(1~5)Python3算法基础练习:编程100例(6 ~ 10)Python3算法基础练习:编程100例(16 ~ 20)16.计算当前日期前后3天的日期17.统计字符出现次数16.计算当前日期前后3天的日期题目:输出指定格式的日期; 并且计算当前日期前后3天的日期代码:# 输出指定格式的日期# 计算当前日期前后3天的日期from datetime import date, datetime, timedeltaif __name
2021-06-04 23:13:47
2038
26
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 python编程实战(三):暴力破解WIFI密码!亲测运行有效!
本文非原创,参考:Python破解WIFI密码详细介绍对于代码有细微修改;增加注意事项介绍;声明:本文只是从技术的角度来阐述学习Pywifi库!并不建议大家做任何破坏性的操作和任何不当的行为!并不建议大家做任何破坏性的操作和任何不当的行为!python编程实战:暴力破解WIFI密码1、破解wifi密码的流程2、实现【注意事项】3、题外话:查看电脑已连接的 WIFI 密码1、破解wifi密码的流程① 生成数字组合的密码本(复杂的就是大小写字母和数字组合)密码本生成需要时间,文末已给纯数字密码
2021-06-03 20:00:47
96501
72
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 计算机网络(二)计算机网络 体系结构和OSI参考模型 | 思维导图
目录思维导图一、计算机网络概述1、计算机网络的概念① 计算机网络概念②计算机网络的发展第一阶段,阿帕网第二阶段,三级结构第三阶段,多层次ISP结构2、计算机网络的组成① 从组成部分看② 从工作方式看③ 从功能组成看3、计算机网络的功能①数据通信②资源共享③分布式处理④ 提高可靠性⑤负载均衡4、计算机网络的分类5、标准化及组织6、计算机性能指标二、计算机网络体系结构和参考模型思维导图一、计算机网络概述1、计算机网络的概念① 计算机网络概念计算机网络,是将分散的、具有独立功能的计算机系统,通过通信
2021-06-03 16:28:28
1714
6
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 python编程实战(二):一文教你生成随机验证码!大小写字母与数字组合,位数可以控制
随机验证码的生成前言正文前言验证码验证,是常见的安全验证的一种方式,可以用来杜绝脚本和机器人操作等等;除了本文介绍的简单的验证码之外,还有拼图验证、文字顺序验证等常见的验证方式正文本文实现的随机验证码的生成,在一些简单的项目中可以用到主要实现大小写字母、数字的随机组合,还可以控制随机验证码的位数需要的时候,直接拿来就可以用,相当于一个简单的模块下面轻松 + 愉快,直奔主题开始实现吧!...
2021-06-03 16:27:27
2962
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 python编程实战(一):用户登录模块,用户注册、登录、信息管理、功能设计与实现!
用户登录模块前言&思维导图1.判断首次启动2.用户注册3、管理员信息&登录4.用户登录5.完整代码前言&思维导图用户登录模块是最基本的模块之一,主要设计的有当前用户存在判断,用户注册,用户登录名和密码的保存,用户信息输出等等;1.判断首次启动通过判断flag.txt是否存在,判断是不是首次启动;这是一种简单而常见的手法,常在程序初始化的时候会有这样的需求。判断一个特定文件存在与否,或者判断配置文件的值是否改变;就能够判断出来当前是不是首次启动,是的话,初始化程序,不是
2021-05-29 19:03:16
38937
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Python3算法基础练习:编程100例(11 ~ 15)
往期练习:Python3算法基础练习:编程100例(1~5)Python3算法基础练习:编程100例(6 ~ 10)Python3算法基础练习:编程100例(11 ~ 15)11.兔子问题12.判断素数13.水仙花数14.15.11.兔子问题题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?分析:1,1,2,3,5,8,13,21… 找规律代码:f1 = 1f2 = 1for i in range(
2021-05-29 16:58:50
1019
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Python3 环境搭建、pycharm安装配置详解、新建Python项目(新手小白版Windows系统)
Python3 环境搭建 、pycharm安装配置详解、新建Python项目(新手小白版)| 包括Windows系统、Linux系统window系统环境搭建:1、环境搭建,下载Pythonstep 1:打开下载网址:https://www.python.org/downloads/windows/step 2:...
2021-04-03 18:20:04
2024
11
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 通俗易懂:贪心算法(三):习题练习 (力扣605种花问题、122买卖股票的最佳时机)
看完本文,可以顺便解决leetcode以下两个题目:605.种花问题????(简单)122.买卖股票的最佳时机Ⅱ????(简单)605.种花问题(简单)题目描述假设有一个很长的花坛????,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?????能则返回 true
2021-03-26 12:26:31
450
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 通俗易懂:贪心算法(二):区间问题 (力扣435无重叠区间)
看完本文,可以顺便解决leetcode以下题目:435.无重叠区间(中等)一、通俗易懂的 贪心算法 |思想 (重复一次~~~)贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的,从而使得结果是全局最优的。比如,A、B、C、都很喜欢吃橘子,A可以吃5个、B可以吃3个、C可以吃1个;但是现在只有7个橘子,问最多几个人可以吃饱;我们选用的贪心策略就是,吃的少的人先吃,尽量先使用量少的人吃饱,所以在这里,B、C肯定是可以吃饱的;在这里,又因为全局结果是局部结果的简单求和,因此,局部最优的策略
2021-03-26 12:15:41
851
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 通俗易懂:贪心算法(一):分配问题 (力扣455分发饼干 和135分发糖果)
看完本文,可以顺便解决leetcode以下两个题目:455.分发饼干(简单)135.分发糖果(困难)一、通俗易懂的 贪心算法 |思想贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的,从而使得结果是全局最优的。比如,A、B、C、都很喜欢吃橘子,A可以吃5个、B可以吃3个、C可以吃1个;但是现在只有7个橘子,问最多几个人可以吃饱;我们选用的贪心策略就是,吃的少的人先吃,尽量先使用量少的人吃饱,所以在这里,B、C肯定是可以吃饱的;在这里,又因为全局结果是局部结果的简单求和,因此,局部最
2021-03-14 00:10:16
1417
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 位运算的那些奇技淫巧 | 掌(装)握(逼)必备,妙解两道算法题
看完本文,可以顺便解决leetcode以下两个题目:191.位1的个数(简单)136.只出现一次的数字(简单)一、常(装)见(逼)的位操作下面我们从简单开始,一步一步的实现复杂的位运算~1、判断奇数偶数看到这个,你肯定觉得很简单,然后随手写下:if (n % 2 == 0){ // 偶数} else { // 奇数}其实使用位运算,可以这样写if ( n & 1 == 1){ // 奇数} else { // 偶数}因为如果一个二进制表示偶数的话偶数的最后一
2021-01-17 15:14:52
16234
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 力扣【阶乘问题】leetcode-172、阶乘后的零;leetcode-793、阶乘后K个零;
题目一:172、阶乘后的零给定一个整数 n,返回 n! 结果中,尾数中零的数量举一个栗子:6!=【 1 * 2 * 3 * 4 * 5 * 6 】6!= 720所以的话就是返回1,因为720 后面只有一个0那么应该怎么做呢?乍一看,感觉问题很复杂,其实只要冷静下来,一步一步简化,结果是十分明了的~第一个想法:首先把阶乘算出来,然后从前到后每一位都遍历吗?这个方法肯定是不可取的,复杂度太高了。我们只需要简单分析一下题目要求看 0 的数量 ,1、末尾的0 是从哪里来的?肯定是乘以 10 得
2021-01-13 20:08:18
315
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 排序算法 | 直接插入排序算法的图解、实现、复杂度和稳定性分析
排序算法 | 直接插入排序算法的图解、实现、复杂度和稳定性分析目录1、直接插入排序定义2、直接插入排序,步骤说明3、动态图演示1、直接插入排序定义直接插入排序(Straight Insertion Sort),是比较简单的一种排序方式直接插入排序的思想框架,简单来说就是,从后面的未排序的序列中,拿一个元素出来,插入到前面的已经排序完成的有序的序列中去,插入适当的位置;后续的元素也是如此,一直到序列全部排序完毕;2、直接插入排序,步骤说明第一个元素,即可认为是已经有序的一个序列取下一个
2021-01-02 15:52:56
3454
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 QT使用之 手指滑动 | 物理惯性继续滑动动画的实现,根据不同速度实现不同动画效果
QT使用之 手指滑动后物理惯性继续滑动动画的实现,根据不同速度不同效果
2020-12-31 17:47:18
1740
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 QT:触摸屏支持手指触摸,增加touch事件touchevent,记录前后touch坐标并处理
QT:增加手指触摸touch事件touchevent,记录前后坐标并处理
2020-12-01 13:15:13
20010
7
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 双指针算法之快慢指针(一):力扣【判断链表是否有环】leetcode-141、142
kaui/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycle(ListNode *head) { ListNode *fast,*slow;
2020-11-30 17:10:19
2600
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 双指针算法之快慢指针(二):力扣【寻找链表的第N个点】leetcode-876、19
双指针算法之快慢指针(二):力扣【寻找链表的第N个点】leetcode-141、142
2020-11-29 16:18:06
235
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 linux下使用syslog日志调试程序快速的调试代码信息的过程
linux下使用syslog日志调试程序快速的调试代码信息的过程功能:查看函数是否调用成功;函数调用执行的过程等等;使用头文件#include <syslog.h>
2020-11-22 15:02:30
427
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 linux下gdb使用core文件调试程序,解决“段错误核心已转储“的问题
gdb使用core文件调试程序,解决“段错误核心已转储“的问题;设置core文件开关,解决> "警告:此文件自读入后已发生改动!!!"以及"core pattern" E667:同步失败的信息;等问题
2020-11-14 13:01:22
2719
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 力扣【下一个更大元素】leetcode-503.下一个更大元素 Ⅱ:单调栈解法+循环数组解法
题目:思路:解法:代码:class Solution {public: vector<int> nextGreaterElements(vector<int>& nums) { int n = nums.size(); vector<int> res(n); stack<int> s; //单调栈解法 和 739题每日温度相似;多了循环数组的处理 //不去增倍数组,
2020-11-08 18:08:55
262
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 力扣【接雨水问题】 leetcode-42:暴力-备忘录-双指针三种方法
题目描述:思路:不要去思考整体装多少,应该去思考局部的;去想每一个 i 的位置,最多能够装多少雨水;这里的 i 位置最多可以装 2 雨水;和 i 位置 左边最高的柱子,右边最高的柱子有关。大致框架:water[i] = min(max(left) , max(right)) - height[i];解法一:暴力法:时间复杂度 O(N^2),空间复杂度 O(1)。class Solution {public: int trap(vector<int>&a
2020-11-04 12:55:12
286
原创 岛屿类-网格类问题-DFS | 力扣463. 岛屿的周长
思路参考:岛屿类-网格类问题-DFS | 力扣200. 岛屿数量本文讲解463. 岛屿的周长问题,属于常见的岛屿类-网格类问题本题使用DFS的思想其实还有暴力递归的思路,属于比较巧妙的一种目录题目 示例思路 一 DFS代码思路 二 递归计算代码题目 示例思路 一 DFS思路参考:岛屿类-网格类问题-DFS | 力扣200. 岛屿数量代码class Solution {public: int islandPerimeter(vector<vector<
2021-06-23 01:24:15
540
1
原创 岛屿类-网格类问题-DFS | 力扣695. 岛屿的最大面积
思路参考上文:岛屿类-网格类问题-DFS | 力扣200. 岛屿数量本文讲解695. 岛屿的最大面积问题,属于常见的岛屿类-网格类问题本题使用DFS的思想题目给定一个包含了一些 0 和 1 的非空二维数组 grid一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 )示例思路分析思路
2021-06-18 22:51:09
387
原创 双指针算法 | 力扣344. 反转字符串
本文讲解力扣344. 反转字符串问题也就是使用双指针的思想很简单的一道题1 题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。2 示例3 思路分析使用 前后双指针;L 在首位; R 在 尾部L R 指向的字符串交换位置;随后 L 后移,R 前移;继续交换重复上.
2021-06-17 22:09:34
237
原创 双指针算法之滑动窗口 | 力扣76.最小覆盖字串
本文将通过解决 力扣76.最小覆盖字串 问题,讲解滑动窗口的原理与实现76.最小覆盖字串题目:给定字符串 S 以及字符串 T ,求 S 种 包含 T 的最短连续子字符串的长度要求 时间复杂度 ≤ O(n)
2021-06-16 22:36:33
288
原创 计算机网络(三)计算机网络-物理层 | 物理设备与传输介质(思维导图 | 知识点总结)
物理层大纲1.物理层功能2.物理层-接口特性是什么?3.物理层设备-中继器大纲1.物理层功能实现物理介质上 比特率的透明传输单位:比特【功能】① 定义接口特性② 定义传输模式(全双工 半双工 单工)③ 定义传输速率④ 比特同步⑤ 比特编码主要协议:Rj45 802.32.物理层-接口特性是什么?① 机械特性定义物理接口的尺寸,规格,引脚数目、数量,排布情况等② 电气特性规定传输二进制数据时,线路上信号的电压范围、传输速率、速度匹配等等③ 功能特性规定线路上电平的表示意
2021-06-11 01:22:43
1693
1
原创 Python3算法基础练习:编程100例( 31 ~ 35 )
上期文章:Python3算法基础练习:编程100例( 26 ~ 30)目录31 判断星期几32 反序输出列表33 分隔列表34 函数调用35 文本加颜色31 判断星期几题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母分析:条件语句即可,没难度的题留意 Saturday Sunday 首字母一样 Tuesday Thursday 首字母一样同时大小写应该处理以下代码:# 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二
2021-06-06 22:47:28
869
4
原创 Python3算法基础练习:编程100例( 26 ~ 30)
上期文章:Python3算法基础练习:编程100例( 21~ 25)目录26 递归求 20! 的阶乘27 字符串反转28 猜岁数29 整数打印每一位数字30 回文数26 递归求 20! 的阶乘题目:递归求 20! 的阶乘代码:# 递归求 20!def factorial(n): fn = 0 if n == 0: fn = 1 else: fn = n * factorial(n - 1) return fnprint(f
2021-06-05 22:33:32
782
1
原创 二分大法| 求X的开方,结果一个公式解决! (力扣69.X 的平方根)
本文将讲述:69.X 的平方根(简单)题目:给你一个非负整数,求其开方,向下取整思路:首先,我们把问题数学表示出来,就是:求 f(x) = x^2 - a = 0的解;而且,题目要求的是 非负整数,所以 我们只需要考虑 x >= 0 的情况我们可以注意到:f(0) <= 0 ; f(a) >=0(好家伙,其实这又是一道数学题!)所以,由零点定理我们可以在 区间 [0,a] 上,找到我们想要的解了!在区间上,首先想到的是二分法在区间查找~class Solution
2021-06-03 21:40:42
608
原创 排序算法 | 希尔shell排序,算法的图解、实现、复杂度和稳定性分析
1、希尔排序——定义希尔排序按其设计者希尔(Donald Shell)的名字命名,该算法由希尔 1959 年公布。希尔排序是基于插入排序的以下两点性质而提出改进方法的:1、插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。2、但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。2、希尔排序——步骤描述3、希尔排序——算法实现4、希尔排序——复杂度、稳定性分析由于多次插入排序,我们知道一次插入排序是稳定的,不会改变相同元素的相对顺序,但在不同的插入排
2021-05-28 17:54:01
4216
2
原创 Python3算法基础练习:编程100例(6 ~ 10)
往期练习:Python3算法基础练习:编程100例(1~5)Python3算法基础练习:编程100例(6 ~ 10)6.斐波那契数列7.列表复制8.乘法口诀表9.暂停输出10.格式化时间6.斐波那契数列题目:给你一个数,输出这个数的斐波那契数列分析:根据公式,递归实现代码:def fib(n): if n==1 or n==2: return 1 return fib(n-1)+fib(n-2)print (fib(10))print (fib(8))
2021-05-26 20:47:41
1690
12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人