- 博客(22)
- 收藏
- 关注
原创 【经典排序算法】7-计数排序
1. 计数排序的思想 计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。2. 计数排序的算法步骤 算法的步骤如下: (1)找出待排序的数组中最大和最小的元素; (2)统计数组中每个值为i的元素出现的次数,存入数组C的第i项; (3)对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加); (4)反向填充目标数组:将每个元素i放在新数组的第C(i)项,每放一个元素就将C(i)减去1。
2021-12-02 22:42:44
234
原创 【经典排序算法】3-插入排序、折半插入排序、希尔排序
文章目录1. 插入排序的思想2. 插入排序的算法步骤3. 插入排序的代码4. 插入排序的复杂度分析5. 插入排序的稳定性分析1. 插入排序的思想2. 插入排序的算法步骤3. 插入排序的代码4. 插入排序的复杂度分析5. 插入排序的稳定性分析...
2021-11-28 20:58:32
539
原创 【经典排序算法】5-堆排序
文章目录1. 堆排序的思想2. 堆排序的代码1. 堆排序的思想 初始时候,堆排序算法利用BUILD-MAX-HEAP将输入数组A[1…n]建成最大堆,其中n=A.length。 因为数组中的最大元素总在根节点A[1]中,通过把它和A[n]进行互换,可以将该元素放到正确的位置。这时候,如果我们从堆中去掉结点n,剩余的结点中,原来根的孩子结点仍然是最大堆,而新的根节点可能会违背最大堆的性质。 为了维护最大堆的性质,我们要做的是调用MAX-HEAPIFY(A, 1),从而在A[1…n-1]上构造一
2021-11-28 20:48:06
385
原创 【经典排序算法】6-归并排序
文章目录1. 归并排序的思想2. 归并排序的算法步骤3. 归并排序的演示图解4. 归并排序的代码5. 归并排序的复杂度分析6. 归并排序的稳定性分析1. 归并排序的思想 归并排序,采用的是典型的分治思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后再合并这些子问题的解来建立原问题的解。 注意:代码里在两个队尾放置了一个哨兵INT_MAX,来避免判断是否有一个队列已经为空,达到简化代码的目的。2. 归并排序的算法步骤3. 归并排序的演示图解4. 归并排序的代码
2021-11-28 20:22:17
607
原创 【经典排序算法】4-快速排序
文章目录1. 快速排序的思想2. 快速排序的算法步骤3. 快速排序的演示图解4. 快速排序的代码5. 快速排序的算法导论思想6. 快速排序的最早算法思想7. 快速排序的复杂度分析8. 快速排序的稳定性分析1. 快速排序的思想快速排序其实是对冒泡排序的一种改进,目的是提高排序的效率。快速排序中最重要的一个词是“基准”,一般取第一个元素作为基准(这个是必须要取第一个元素吗?留个疑问给大家,后面的优化方法中会提到和解释),把所有比基准值小的元素放在基准前面,所有比基准值大的元素放在基准的后面(相同的数可以
2021-11-28 14:07:28
828
原创 【经典排序算法】1-冒泡排序
文章目录1. 冒泡排序的思想2. 冒泡排序的算法步骤3. 冒泡排序的代码4. 冒泡排序的算法导论解法5. 冒泡排序的复杂度分析6. 冒泡排序的稳定性分析1. 冒泡排序的思想 冒泡排序的思想就是:从第一个数开始,两两进行比较,逆序时交换。经过一趟比较之后,最大的数会被交换到最后,即最大的数会沉底,类似于最大的水泡在池子最底层(反之,从大到小排序也是一样的原理)。然后接着对前n-1个记录重复上述过程,直到排序完毕,类似于冒泡过程。 注意:在某趟排序的比较中,如果发现两两比较无一交换,则说明数组已经有序
2021-11-28 13:24:03
1197
原创 (未完)超详细讲解:leetcode-0014-LongestCommonPrefix(最长公共前缀)
文章目录1. 题目地址2. 题目描述3. 解题思路4. 解题关键5. 示例代码6. 相关题目11. 题目地址英文版题目地址中文版题目地址2. 题目描述英文描述Write a function to find the longest common prefix string amongst an array of strings.If there is no common prefix, return an empty string "".Example 1:Input: s
2021-11-11 21:21:44
3933
原创 超详细讲解-十大经典排序算法-总结
文章目录排序算法介绍今日份鸡汤:你战胜了苦难,它就是你的财富; 苦难战胜了你,它就是你的屈辱。排序算法介绍排序算法是数据结构中最基本的算法,也是最经典的算法之一。排序算法有多种分类方法,如:内排和外排、比较排序和非比较排序、稳定排序和非稳定排序等。排序算法大体可分为两种:一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。另一种是非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序
2021-11-01 17:54:06
430
原创 超详细讲解:leetcode-0009-PalindromeNumber(回文数)
文章目录1. 题目地址2. 题目描述3. 解题思路4. 解题关键5. 示例代码6. 相关题目11. 题目地址英文版题目地址中文版题目地址2. 题目描述英文描述Given an integer x, return true if x is palindrome integer.An integer is a palindrome when it reads the same backward as forward. For example, 121 is palindrome whil
2021-10-28 22:42:38
3110
原创 超详细讲解:leetcode-0026-RemoveDuplicatesFromSortedArray(删除排序数组中的重复项)
文章目录1. 题目地址2. 题目描述3. 解题思路4. 解题关键5. 示例代码6. 相关题目1. 题目地址英文版题目地址中文版题目地址2. 题目描述英文描述Given a sorted array nums, remove the duplicates in-place such that each element appears only once and returns the new length.Do not allocate extra space for another
2021-01-10 17:08:36
136
原创 超详细讲解:leetcode-0167-TwoSumII-InputArrayIsSorted(两数之和II-输入有序数组)
文章目录1. 题目地址2. 题目描述3. 解题思路4. 解题关键5. 示例代码6. 相关题目可以先看下超详细讲解:leetcode-leetcode-0001-TwoSum(两数之和),这个是其第二个版本,即增加了数组是有序数组这一条件。难度:简单。1. 题目地址英文版题目地址中文版题目地址2. 题目描述英文描述Given an array of integers that is already sorted in ascending order, find two numbers s
2021-01-04 22:29:15
131
原创 超详细讲解:leetcode-0125-ValidPalindrome(验证回文串)
文章目录1. 题目地址2. 题目描述3. 解题思路4. 解题关键5. 示例代码6. 相关题目1. 题目地址英文版题目地址中文版题目地址2. 题目描述英文描述Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.Note: For the purpose of this problem, we define empty st
2021-01-04 21:42:40
270
3
原创 超详细讲解:leetcode-0316_1-相关题目1(2个只出现1次的数字)
文章目录1. 题目描述2. 解题思路4. 解题关键5. 示例代码6. 相关题目可以先看下leetcode-0316-SingleNumber(只出现1次的数字),这个是其衍生的相关题目。1. 题目描述中文描述有一个 n 个元素的数组,除了两个数只出现 1 次外,其余元素都出现 2 次,让你找出这两个只出现一次的数分别是几。要求时间复杂度为 O(n) 而且,再开辟的内存空间固定(与 n 无关)。2. 解题思路只有两个数字分别只出现了1次,其余元素都出现了两次。回顾一下leetcod
2020-12-11 14:39:28
260
1
原创 优快云博客:添加空格、空行的多种方法(亲测有用)
1. 添加空格空格问题: 在编辑优快云文章的时候,无论我们输入多少个空格,最终都只会显示一个空格。解决方法:输入 &emsp 后边加上 英文分号,即为一个空格。 若开头空一格,则在开头输入:  若开头空两格,则在开头输入:  输入   后边加上 英文分号,需要多个空格则输入多次。(nbsp全称Non_Breaking Space,即:不间断的空格) &nb
2020-11-18 11:13:32
5034
2
原创 超详细讲解:leetcode-0136-SingleNumber(只出现1次的数字)
文章目录1. 题目地址2. 题目描述3. 解题思路4. 解题关键5. 示例代码6. 相关题目1. 题目地址英文版题目地址中文版题目地址2. 题目描述英文描述Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.Follow up: Could you implement a solution with a linear run
2020-11-17 22:01:27
413
1
原创 超详细讲解:leetcode-0020-ValidParentheses(有效括号)
文章目录1. 题目地址2. 题目描述3. 解题思路4. 解题关键5. 示例代码1. 题目地址英文版题目地址中文版题目地址2. 题目描述英文描述Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.An input string is valid if:Open brackets must be c
2020-11-16 17:10:34
190
原创 tmux基本命令及快捷键
文章目录tmux简介tmux的基本介绍tmux的作用tmux的基本结构tmux的基本操作tmux的会话管理命令tmux的窗口管理命令tmux的窗格管理命令tmux简介tmux的基本介绍tmux(terminal multiplexer)是终端复用神器,可以从一个屏幕上管理多个终端(准确说是伪终端)。使用该工具,用户可以连接或断开会话,而保持终端在后台运行。tmux is a terminal multiplexer. It lets you switch easily between severa
2020-07-07 15:19:08
532
原创 超详细讲解:leetcode-0001-TwoSum(两数之和)
题目地址英文版地址中文版地址题目描述英文描述Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.Example:G
2020-06-03 14:05:33
237
原创 超详细讲解:leetcode-0002-AddTwoNumbers(两数相加)
题目地址英文版地址中文版地址题目描述英文描述You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. A...
2020-05-31 23:33:03
255
原创 本机连接服务器使用Tensorboard的方法
大多数情况下,我们都需要使用xshell连接Linux服务器。而在ssh服务器上远程运行TensorFlow代码的时候,如何在本地启动Tensorboard页面呢?本机为Windows系统假设现在已经通过xshell连接上了远程服务器。打开"文件" -> “当前会话属性” -> “SSH” -> “隧道” -> “添加”点击"添加"之后,会出现"转移规则"页面,...
2019-11-14 10:42:33
1050
1
原创 GitHub入门教程
GitHub的官方网站为:GitHub注册账户首先是在官网上注册自己的GitHub账号注册完成之后,完成一些简单的设置,然后开始创建一个属于自己的库创建仓库(注意:由于我们是免费用户,因此只能创建公共仓库)Create a new repository(1)“Repository name"是为自己的库起一个库名(2)“Description"是对自己的库进行一个简单的描述...
2019-09-25 14:21:58
1153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人