![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
super码王
一直在努力,从未放弃!!!
展开
-
力扣之水果成篮史上最全解法
题目连接904. 水果成篮 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/fruit-into-baskets/题目描述解题思路像这种求最大长度的问题,滑动窗口成了最热门的解法。所谓滑动窗口 ,在我看来其实就是左右两个指针,右指针负责遍历数据,左指针根据条件移动,目标长度 = 右指针 - 左指针 + 1有了上面的大局观,我们就来结合本题目好好用一下滑动窗口:定义一个右指针 right,使用它.原创 2022-03-28 12:06:43 · 855 阅读 · 0 评论 -
插入排序史上最经典的实现方式
插入排序的原理插入排序的代码实现循环法let arrayData = [44, 3, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];let insertSort = (arr) => { //对于第0个元素 只有一个元素,所以没有比的必要,我们就从第1个元素开始 for (let i = 1; i < arr.length; i++) { //取出遍历到的元素原创 2022-03-18 19:18:41 · 482 阅读 · 0 评论 -
选择排序史上最经典实现方式
选择排序原理不得不说,选择排序和上一节我们讲的冒泡排序真的有点像,但是两者还是有点区别的,差别在于冒泡排序 是相邻元素进行比较,选择排序是选择一个基准,和其余的全部进行比较。代码实现双循环法let dataArr = [44, 3, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]var selectSort = (data, len) => { //目标数组有 len 个元素,所以我们每个遍历数组中的每一个元素 进行..原创 2022-03-16 18:49:15 · 535 阅读 · 0 评论 -
冒泡排序史上最经典的实现
冒泡排序概念讲解简单点说,冒泡排序就是将大的数通过一步步比较放在右边,将小的数一步步放在左边。代码实现本代码不是最优代码,但是肯定是最容易理解的代码双层循环法var arry = [44, 3, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]const bubblesort = function (arr) { //第一次需要排15个元素,第二次需要排序14个元素,所以从15个元素慢慢递减 15 14 ... f原创 2022-03-15 10:46:01 · 1217 阅读 · 0 评论 -
快速排序算法史上最经典实现
快速排序算法经典介绍快速排序算法实现原理图解第一步:第二步: 取出基准值第三步:先右指针往左遍历,遇到比基准值44小的就填补到左指针指向的位置第四步:左指针向右遍历,遇到比基准值大的就放到右指针指向的位置第五步:重复第三步和第四步,直到左右指针指向同一个位置,然后将基准值放入该位置第六步:第五步之后很明显得到了左右序列,下面只需要对左右序列递归即可。快速排序代码实现var arry = [44, 3, 38, 5, 47, 15, 36, 26, .原创 2022-03-08 22:48:18 · 319 阅读 · 0 评论 -
冒泡排序之go语言实现
基本介绍案例分析思路分析一共需要多少轮排序 (数组Size - 1) 每一轮中需要多少次比较 (数组Size - 轮次) 数据交换算法(3种):临时变量法、求和法、异或法代码实现package mainimport "fmt"//冒泡排序func BubbleSort(arr *[5]int) { fmt.Println("排序前arr=", *arr) for i := 0; i < len(arr)-1; i++ { //轮次循环 for j..原创 2021-09-13 10:37:48 · 225 阅读 · 0 评论 -
队列系列篇——数组模拟
基本介绍数组模拟队列代码实现原创 2021-09-12 22:04:53 · 317 阅读 · 0 评论 -
稀疏数组系列篇
基本介绍案例展示原理分析原创 2021-09-07 23:52:56 · 305 阅读 · 1 评论 -
计算机中为什么要用补码运算?
根据个人总结,其原因主要有以下三点:让符号位也能参与数值的计算,让计算规则更简单 让减法运算也能用加法表示,简化了硬件电路的设计 让0有统一的编码,因为 反码 和 原码中 +0 和 -0 编码格式不一样...原创 2021-08-29 13:14:33 · 721 阅读 · 0 评论 -
删除排序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。解题思路:双指针法题目链接:初级算法 -删除排序数组中的重复项java实现class Solution { public int removeDuplicates(int[] nums) { // 采用双指针法 //初始化左指针 ..原创 2021-07-26 13:04:43 · 206 阅读 · 0 评论 -
数据结构与算法绪论
什么是数据结构?明白以下两点即可领悟:程序设计 = 数据结构 + 算法 数据结构就是一种 数据元素 间一种或多种特定关系的表征。数据结构的分类分为 逻辑结构 和 物理结构。逻辑结构:是指 数据元素 间相互关系。物理结构:是指 数据的逻辑结构 在计算机中的存储形式。逻辑结构的形式集合结构线性结构树形结构图形结构物理结构的形式顺序存储结构是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。例如:我们编程...原创 2021-07-23 10:18:18 · 203 阅读 · 0 评论