Python数据结构与算法(2.7)——跳表
在诸如单链表、双线链表等普通链表中,查找、插入和删除操作由于必须从头结点遍历链表才能找到相关链表,因此时间复杂度均为 O(n)。跳表是带有附加指针的链表,使用这些附加指针可以跳过一些中间结点,用以快速完成查找、插入和删除等操作。本节将介绍跳表的相关概念及其具体实现。
数据结构--排序之快速排序
快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。快排每一趟
【算法】力扣第 279 场周赛(最短代码)
力扣第279周周赛最短代码
【剑指 offer】21. 调整数组顺序使奇数位于偶数前面
本节目录刷前点说题目介绍(LINK)思路/想法1. 初始思路/最终思路2. 注意点自己写的(相对位置变)NowCoder(相对位置不变)LeetCode(相对位置该不该都行)感谢语刷前点说以后的话,除了代码和想说的话,就会的剪短文章的长度,因为在写文章上浪费了太多的是时间!其实刷题是不难的,难的是坚
链表的OJ题练习
目录????????1、给你单链表的头节点head,请你反转链表,并返回反转后的链表。????????2、给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。????????3、给定一个头结点为head的非空单链
万字详解常用排序:插排,希排,选排,堆排,冒泡(动图代码解析)
排序排序是一种非常重要的基础算法,在校招和工作中都非常的实用,它在日常生活中无处不再。本章将介绍八大基本排序。1 排序的概念所谓排序,就是将一串记录按照某种递增递减的关系,使该记录成为一个有序的序列。常见并实用的排序有如下八种。//直接插排void InsertSort(int* a, int n)
高精度算法
1.高精度实现2的n次方对应牛客网链接:2的N次方_牛客题霸_牛客网 (nowcoder.com)题目描述:解题思路:由于N的范围较大如果我们采用long long 类型的数字进行存储肯定会栈溢出,因此我们只能使用数组进行模拟也就是高精度。1.我们将数组的第一个位置和第二个位置设置为1,第一个位置的
公式串问题及约瑟夫环问题
1.公式串问题对应牛客网链接:公式字符串求值_牛客题霸_牛客网 (nowcoder.com)题目描述:
二叉树算法的应用(复制,求深度,求(叶子)节点数)
1.二叉树的结构定义typedef char Elemtype;//二叉树的结构定义 typedef struct csNode { Elemtype data; struct csNode*lchild; struct csNode*rchild; } Csnode,*tree;2.二叉树
【数据结构】数组区间更新-线段树
例题:LeetCode699掉落的方块
Heap —— Priority Queue 【堆 / 优先队列】
前言 - 为堆的学习做准备二叉树的顺序存储 前面所讲的二叉树,什么孩子表示法呀,还有 孩子双亲表示法啊,都是链式存储。 而现在讲的是:顺序存储一棵二叉树。 存储方式 使用数组保存二叉树结构,方式即将二叉树用层序遍历的方式放入数组中。一般只适合表示完全二叉树,因为 非完全二叉树会有空间的浪费。【也就是
桶排序(简化版)与冒泡排序
桶排序与冒泡排序
蓝桥杯第十讲--贪心【习题】
蓝桥杯官网:蓝桥杯大赛——全国大学生TMT行业赛事.本博客讲解蓝桥杯C/C++备赛所涉及算法知识,此博客为第十讲:贪心【习题】本篇博客所包含习题有:付账问题,乘积最大,后缀表达式。贪心【例题】见博客:蓝桥杯第十讲–贪心【例题】博客内容以题代讲,通过讲解题目的做法来帮助读者快速理解算法内容,需要注意:
LeetCode刷题笔记-数据结构-day21
文章目录LeetCode刷题笔记-数据结构-day21451. 根据字符出现频率排序1.题目2.解题思路3.代码973. 最接近原点的 K 个点1.题目2.解题思路3.代码LeetCode刷题笔记-数据结构-day21451. 根据字符出现频率排序1.题目原题链接:451. 根据字符出现频率排序2.
数据结构--排序之希尔排序
希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。当到达=1时,所有记录在统一组内排好序。
蓝桥杯 floyd算法练习 最短路
问题描述:问题分析:我的难点就在于数据初始化 由于这是个无向图那么必有graph[i][j]=graph[j][i]即临接矩阵对称然后我是手动输入的= =输了大概快7—8分钟然后总结了下面几点规律:对于无向图求最短路径 先把图标上箭头转化为有向图权值用数字标出每个地点用数字标出最后利用对称的性质 大
LeetCode刷题笔记-数据结构-day19
文章目录LeetCode刷题笔记-数据结构-day19997. 找到小镇的法官1.题目描述2.解题思路3.代码1557. 可以到达所有点的最少点数目1.题目描述2.解题思路3.代码841. 钥匙和房间1.题目描述2.解题思路3.代码LeetCode刷题笔记-数据结构-day19997. 找到小镇的法
蓝桥杯第十讲--贪心【例题】
蓝桥杯官网:蓝桥杯大赛——全国大学生TMT行业赛事,本博客讲解蓝桥杯C/C++备赛所涉及算法知识,此博客为第十讲:贪心【例题】本篇博客所包含习题有:股票买卖 II,货仓选址,糖果传递,雷达设备。贪心【习题】见博客:蓝桥杯第十讲--贪心【习题】博客内容以题代讲,通过讲解题目的做法来帮助读者快速理解算法
数据结构:10大经典排序
排序1、冒泡排序2、选择排序3、插入排序4、希尔排序5、快速排序6、归并排序7、堆排序8、计数排序9、桶排序10、基数排序1、冒泡排序// 冒泡排序#include <stdlib.h>#include <stdio.h>// 采用两层循环实现的方法。// 参数arr是待排序