0

数据结构和算法:Python实现冒泡排序

实现冒泡排序的程序如下: def bubble_sort(alist): n=len(alist) for k in range(n-1):#最后最小的一个数字不用排序,因为已经是最小了 for i in range(n-1-k):#用k来限定每一个小冒泡排序的区间 if(alist[i]>alis ...

Geeksongs 发布于 2020-03-30 15:35 评论(0)阅读(23)
0

数据结构(三):栈

一、概述 栈(Stack),也叫堆栈。但是不能称为堆,堆是另外一种数据结构 FILO栈遵循先进后出的原则(First In Last Out) 基本操作有:入栈(压栈)、出栈(退栈) 入栈和出栈都是针对栈顶的操作 二、结构示意图 依次将a、b、c元素压进一个空栈中: 将上述栈中的元素一个一个出栈 由 ...

猪肉王子-17 发布于 2020-03-30 15:19 评论(0)阅读(16)
0

二叉树的基本实现

摘要 + "定义和数据结构" + "初始化和赋值" + "遍历方式" 一、定义和数据结构 1. 定义 二叉树(Binary Tree)是一种树形结构,它的特点是每个结点至多有两棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能随意颠倒。 2. 数据结构 该结点是二叉树 ...

田世豪 发布于 2020-03-30 00:02 评论(0)阅读(28)
0

最短路算法实现与分析:Dijkstra算法,Floyed,Bellman-Ford, SPFA算法;

最短路算法:最短路径算法是图论研究中,一个经典算法问题;旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 确定起点的最短路径问题:已知起始点,求最短路径问题。适合使用Dijkstra算法;(单源最短路径问题) 全局最短路径问题:求图中所有的最短路径,适用于Floyed-Warshall 算法 ...

xuyaowen 发布于 2020-03-29 22:26 评论(0)阅读(36)
1

常见排序算法总结分析之交换排序与插入排序-C#实现

每每遇到关于排序算法的问题总是不能很好的解决,对一些概念,思想以及具体实现的认识也是模棱两可。归根结底,还是掌握不够熟练。以前只是看别人写,看了就忘。现在打算自己写,写些自己的东西,做个总结。本篇是这个总结的开始,所以我们先来阐述一下本次总结中会用到的一些概念。 排序是如何分类的?可以从不同的的角度... ...

iwiniwin 发布于 2020-03-29 22:22 评论(0)阅读(121)
0

最小生成树算法实现与分析:Prim 算法,Kruskal 算法;

连通图:无向图G中,若从顶点i到顶点j有路径相连,则称i,j是连通的;如果G是有向图,那么连接i和j的路径中所有的边都必须同向;如果图中任意两点之间都是连通的,那么图被称作连通图。 强连通图:有向图G中,对于任意的两个点之间x,y,都存在x到y的路径,为强连通图; 弱连通图:将有向图的所有的有向边替 ...

xuyaowen 发布于 2020-03-29 17:08 评论(0)阅读(49)
0

【LeetCode】206.反转链表

题目描述 "206.反转链表" 反转一个单链表。 示例: 输入: 1 2 3 4 5 NULL 输出: 5 4 3 2 1 NULL 题目解析 方法一:迭代反转 解题思路 从题意分析,反转链表对于链表上每个节点来说,就是将当前节点 curr 的 next 指针指向其前继节点 prev 直到链表末尾, ...

握不住手中沙 发布于 2020-03-29 16:02 评论(0)阅读(10)
0

【LeetCode】15.三数之和

题目描述 "1. 三数之和" 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [ 1, 0, 1, 2, 1, ...

握不住手中沙 发布于 2020-03-29 15:56 评论(0)阅读(7)
0

【LeetCode】1.两数之和

题目描述 "1. 两数之和" 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], tar ...

握不住手中沙 发布于 2020-03-29 15:53 评论(0)阅读(11)
0

牛客练习赛60 A—F题解(缺E题)

本蒟蒻这次只过了三题 赛后学习了一下出题人巨佬的标码(码风比我好多了 贴的代码有些是仿出题人)现在将自己的理解写下来与大家分享 A这个题一分析就是每个数字都会与所有数字&一下 (a&a=a)&字操作是二进制同位都为一才为一 这时解法就变成统计每个二进制位上1的次数 1 2 3 4 5 6 7 8 9 ...

yurenwuyu 发布于 2020-03-29 15:40 评论(0)阅读(24)
0

分治策略 - 典型实例 - 选择问题

选择问题最常见的问题有: "1.1选最大" "1.2同时选最大和最小的算法" "1.3找第二大" "2选第k小(分治策略)" 1.1选最大 选择算法 统一描述:设L是n个算法的集合,从L中选出第k小的元素,11.2同时选最大和最小的算法 设计思想:先选最大,然后把最大的从L中删除,接着选最小。 == ...

HIIM 发布于 2020-03-29 15:18 评论(0)阅读(167)
1

数据结构(二):链表

一、概述(本文以最简单的单向链表为例,其它复杂的链表以后再说明) 链表和数组不同,链表在创建的时候不会预先在内存中开辟空间。 链表的存储逻辑上是连续的,物理上是不连续的 链表在存储数据的内存中会有两块数据,一块用来存数据,一块用来存储指向下一个数据节点的指针 二、图示 由上图我们可以看出,链表在逻辑 ...

猪肉王子-17 发布于 2020-03-29 12:15 评论(0)阅读(13)
1

数据结构(一):数组

一、概述 定义:数组(Array)是一种线性表数据结构,它用一组连续的内存空间来存储一组具有相同类型的数据 线性表数据结构:数据排成像一条线那样的线性结构 连续的内存空间:数据在内存里面的存储空间是连续的一块内存 具有相同类型:数组里面的所有数据的数据类型是相同的 示例代码 int[] array ...

猪肉王子-17 发布于 2020-03-29 11:45 评论(0)阅读(12)
0

经典数据结构实现与分析:顺序表,单链表,栈,队列,树结构,图结构;

本博客在在这里重新总结了一下,当前常用的经典数据结构;这里只针对链表,顺序表,简单树和图进行总结;具体实现请参考:https://github.com/yaowenxu/codes/tree/master/数据结构; 本文章,主要讨论数据结构的性质;以及对这些数据结构的性质;主要是用来知识整理与复习 ...

xuyaowen 发布于 2020-03-28 16:54 评论(0)阅读(93)
0

搜索查找算法实现合集-经典搜索算法实现与分析:顺序查找,二分查找,分块查找;广度优先搜索,深度优先搜索;

本博客整理了当前经典的搜索算法的实现,并进行了简单的分析;博客中所有的代码实现位于:https://github.com/yaowenxu/codes/tree/master/搜索算法 ; 如果代码对您有帮助,希望能点击star~基于推荐和鼓励!感谢~ 基本概念: 搜索:就是在指定结构内,找到满足条 ...

xuyaowen 发布于 2020-03-27 16:43 评论(0)阅读(44)
0

找出"吸血鬼数"(Java)

吸血鬼数是指位数为偶数的数字,可以由一 对数字相乘而得到,而这对数字各包含乘积的一半 位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下列数字都是 “吸血鬼”数字:1260=21 * 601827=21 * 872187= 27 * 81 那么,开始 由于判 ...

心拍数#0822 发布于 2020-03-27 14:03 评论(0)阅读(14)
0

分治策略 - 典型实例 - 快速排序算法

快速排序算法 基本思想:被排序数组为A,用数组首元素作为标准将A分成前后两部分,比首元素小的元素构成数组的前部分,比首元素大的部分构成数组的后部分。这两部分构成两个新的子问题,算法接着对这两个数组进行递归。 Quicksort(A,p,r) //p,r分别为数组A的首元素和尾元素的下标 输入:数组A ...

HIIM 发布于 2020-03-26 22:59 评论(0)阅读(79)
0

POJ - 1847 Tram

" POJ 1847 题目链接 " 思路 题意比较简单,关键在于如何转化为图的过程。 首先,我们对条件进行分析n最大是100,那么这题极有可能是Floyd 再而,切换开关需要的花费是1,每个开关链接着两个点,这里可以看作是一条边链接两个点。 最后,确定边权值,切换开关边权值是1,不切换开关边权值是0 ...

lifehappy 发布于 2020-03-26 15:48 评论(0)阅读(10)
0

Who Gets the Most Candies? POJ - 2886(线段树单点更新+区间查询+反素数)

预备知识:反素数解析 思路:有了反素数的解法之后就是线段树的事了。 我们可以用线段树来维护哪些人被淘汰,哪些人没被淘汰,被淘汰的人的位置,没被淘汰的人的位置。 我们可以把所有人表示为一个[1,n]的区间,没被淘汰的人权值为1,那么通过线段树维护区间和,就可以知道没被淘汰人的分布情况,tree[roo ...

SummerMingQAQ 发布于 2020-03-25 20:01 评论(0)阅读(29)
0

反素数解析

反素数的定义: 对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整 数,都有,那么称为反素数。 或者: 一个[1,n]的连续区间, 约数相同的最小数x,x是反素数。例如:f(6) = 4,f(8) = 4,6是约数为4切最小的数,所以6是约数。 反素数性质: 反素数肯定是从2开始 ...

SummerMingQAQ 发布于 2020-03-25 18:17 评论(0)阅读(34)