数据结构
super码王
一直在努力,从未放弃!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
力扣之水果成篮史上最全解法
题目连接 904. 水果成篮 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/fruit-into-baskets/ 题目描述 解题思路 像这种求最大长度的问题,滑动窗口成了最热门的解法。 所谓滑动窗口 ,在我看来其实就是左右两个指针,右指针负责遍历数据,左指针根据条件移动,目标长度 = 右指针 - 左指针 + 1 有了上面的大局观,我们就来结合本题目好好用一下滑动窗口: 定义一个右指针 right,使用它.原创 2022-03-28 12:06:43 · 1002 阅读 · 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 · 545 阅读 · 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 · 590 阅读 · 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 · 1284 阅读 · 0 评论 -
快速排序算法史上最经典实现
快速排序算法经典介绍 快速排序算法实现原理图解 第一步: 第二步: 取出基准值 第三步:先右指针往左遍历,遇到比基准值44小的就填补到左指针指向的位置 第四步:左指针向右遍历,遇到比基准值大的就放到右指针指向的位置 第五步:重复第三步和第四步,直到左右指针指向同一个位置,然后将基准值放入该位置 第六步:第五步之后很明显得到了左右序列,下面只需要对左右序列递归即可。 快速排序代码实现 var arry = [44, 3, 38, 5, 47, 15, 36, 26, .原创 2022-03-08 22:48:18 · 394 阅读 · 0 评论 -
冒泡排序之go语言实现
基本介绍 案例分析 思路分析 一共需要多少轮排序 (数组Size - 1) 每一轮中需要多少次比较 (数组Size - 轮次) 数据交换算法(3种):临时变量法、求和法、异或法 代码实现 package main import "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 · 304 阅读 · 0 评论 -
队列系列篇——数组模拟
基本介绍 数组模拟队列 代码实现原创 2021-09-12 22:04:53 · 373 阅读 · 0 评论 -
稀疏数组系列篇
基本介绍 案例展示 原理分析原创 2021-09-07 23:52:56 · 345 阅读 · 1 评论 -
计算机中为什么要用补码运算?
根据个人总结,其原因主要有以下三点: 让符号位也能参与数值的计算,让计算规则更简单 让减法运算也能用加法表示,简化了硬件电路的设计 让0有统一的编码,因为 反码 和 原码中 +0 和 -0 编码格式不一样 ...原创 2021-08-29 13:14:33 · 829 阅读 · 0 评论 -
删除排序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 解题思路:双指针法 题目链接:初级算法 -删除排序数组中的重复项 java实现 class Solution { public int removeDuplicates(int[] nums) { // 采用双指针法 //初始化左指针 ..原创 2021-07-26 13:04:43 · 252 阅读 · 0 评论 -
数据结构与算法绪论
什么是数据结构? 明白以下两点即可领悟: 程序设计 = 数据结构 + 算法 数据结构就是一种 数据元素 间一种或多种特定关系的表征。 数据结构的分类 分为 逻辑结构 和 物理结构。 逻辑结构:是指 数据元素 间相互关系。 物理结构:是指 数据的逻辑结构 在计算机中的存储形式。 逻辑结构的形式 集合结构 线性结构 树形结构 图形结构 物理结构的形式 顺序存储结构 是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。 例如:我们编程...原创 2021-07-23 10:18:18 · 241 阅读 · 0 评论
分享