测试派 Give testers a home.
测试派
社区愿景和功能特性
所见即所得 Markdown 编辑
随时自由编辑分享内容
支持注销账号来去自由
柠檬班
柠檬班官网
腾讯课堂
柠檬班简介
排行榜
帖子打赏排行
积分排行
活跃度排行
贡献排行
长歌测试半生,归来仍是少年
登录
注册
首页
>
标签
算法
15
引用 •
1
关注 •
1690
浏览
关注
发帖
关注
分享
Java
59
引用 •
501
回帖 •
1
关注
测试开发
31
引用 •
1
回帖 •
1
关注
默认
热议
好评
优选
最近回帖
关注者
查看所有标签
数据结构与算法(Java 语言描述)【八】
常用算法 排序算法 堆排序 特点: 堆是一颗逻辑上的完全二叉树,其存储物理结构为顺序结构 堆排序是利用堆这种数据结构设计的一种排序算法,是一种选择排序 大根堆:堆中每个节点的值都大于或等于其左节点、右子节点的值,一般用于升序排序中 [图片] 小根堆:堆中每个节点的值都小于或等于其左节点、右子节点的值,一般用于降序排序中 ..
Java
59
引用 •
501
回帖 •
1
关注
696
数据结构与算法(Java 语言描述)【七】
常用算法 排序算法 希尔排序 特点: 是经过改造后的插入排序,相比简单插入排序,有更高的效率,也称为缩小增量排序 排序过程:把一组要排序的数据按照小于数据长度的一定增量(gap),对要排序的数据进行分组,然后组内数据使用插入排序方法进行排序;随着增量(gap)的逐渐缩小,分组越来越少,最后增量(gap)变为1,此时只有 ..
Java
59
引用 •
501
回帖 •
1
关注
725
数据结构与算法(Java 语言描述)【六】
常用算法 排序算法 冒泡排序 特点: 类似于水中冒泡,较重(大)的物质慢慢沉下去,较轻(小)的物质慢慢冒出来 一般针对线性列表或数组,假设其长度为n,需要经过n-1轮的冒泡;每一轮冒泡挑选一个最大的沉下去 复杂度 时间复杂度:O(n²) 空间复杂度:O(1) 稳定性:稳定 排序过程(升序): [图片] 详细示例见附件中 ..
测试开发
31
引用 •
1
回帖 •
1
关注
663
数据结构与算法(Java 语言描述)【五】
常用数据结构 哈希表 特点: 一般没有容量限制,是通过对Key的哈希计算快速存储和访问指定的内容 因为一般的哈希算法是把任意长度的值,生成指定长度的Key,可能会存在哈希碰撞问题 碰到哈希碰撞时,会通过一个链表来存储具有相同哈希值Key的数据 为了提高哈希表的访问效率,当某个哈希值的相同Key过多,比如超过8个,会使用 ..
测试开发
31
引用 •
1
回帖 •
1
关注
700
数据结构与算法(Java 语言描述)【四】
常用数据结构 栈 特点: 一般没有长度限制,比较典型的实现就是JVM中的每个线程中的栈实现,具体如下图[图片] 逻辑结构:是一种特殊的线性结构,只能在线性结构的一端进行操作,称之为栈顶,可以进行入栈、出栈 物理结构:存储在连续的内存空间中 优点:主要满足一些特定的业务场景,如程序中普通数据类型和引用的存储、异常信息调用 ..
测试开发
31
引用 •
1
回帖 •
1
关注
722
数据结构与算法(Java 语言描述)【三】
常用数据结构 数组 特点: 一般具有固定长度,下标从0开始,具体如下图 [图片] 逻辑结构:逻辑上连续的多个关联数据,能通过下标或遍历快速访问 物理结构:存储在连续的内存中 优点: 按照下标查找速度快 遍历方便 缺点: 无法扩容 只能存储一种类型的数据 插入、删除效率低 Java语言中一般数组的定义方法如下: int[ ..
测试开发
31
引用 •
1
回帖 •
1
关注
704
数据结构与算法(Java 语言描述)【二】
数据结构与算法概述 算法 概述 算法通常是指计算机或程序中按照一定规则解决一类问题的明确而有限的步骤,一般会应用在特定的数据结构上 一般算法具有如下特征 输入:具有0或多个输入 输出:具有1个或多个输出 有穷性:在有限的步骤后,会自动结束,不会无限循环;而且步骤会在有限的时间内完成 确定性:每个步骤都有明确的含义,没有 ..
测试开发
31
引用 •
1
回帖 •
1
关注
719
数据结构与算法(Java 语言描述)【一】
数据结构与算法概述 数据结构 概述 数据结构一般用于描述数据与数据之间关系,是展现一组数据在程序中呈现的形式和存储的结构,常分为逻辑结构和物理结构 何为数据? 数据是用于描述现实中的客观事物,是一个抽象的概念 具体到程序设计过程中,如一个人,一组用户,都是程序中的数据 在Java语言体系中,会对数据进行一定的分类,就有 ..
测试开发
31
引用 •
1
回帖 •
1
关注
783
面试必备排序算法 - 选择排序
选择排序(Selection sort)是一种简单直观的排序算法。 算法原理 第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。 有无序列表 [3,44,38,5,47, ..
算法
15
引用 •
1
关注
818
面试必备排序算法 - 希尔排序
希尔排序按其设计者希尔(Donald Shell)的名字命名,该算法由希尔 1959 年公布。希尔排序(Shell's Sort)是插入排序的一种又称'缩小增量排序',是直接插入排序算法的一种高效的改进版本。 希尔排序是基于插入排序的以下两点性质而提出改进方案的: 插入排序在对几乎已经排好序的数据操作时,效率高,可以达 ..
算法
15
引用 •
1
关注
986
面试必备排序算法 - 插入排序
插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中。 算法原理 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素小于序列中的元素,则比较下一个位置的元素 ..
算法
15
引用 •
1
关注
879
面试必备排序算法 - 归并排序
一、算法原理 归并排序是一种典型的分治算法,它由约翰·冯·诺依曼于1954年发明,至今仍被广泛使用。和多数分治算法一样,用递归方式描述它是最容易的: 如果列表的长度是0或是1,那么它已经排好序了; 如果列表包含多于1个元素,那就将其分成两个列表,并分别使用归并排序进行排序; 合并结果。 [图片] 冯诺依曼的关键发现在于 ..
算法
15
引用 •
1
关注
1.1K
面试必备排序算法 - 快速排序
简介 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,一次达到整个数据变成有 ..
算法
15
引用 •
1
关注
1.6K
面试必备排序算法 - 冒泡排序
冒泡排序,是比较简单的一种排序算法。它的命名源于它的算法原理:重复的从前往后(或者从后往前),依次比较记录中相邻的两个元素,如果他们顺序错误就把它们交换过来,直到没有再需要交换的元素,就说明该记录已完成排序。它看起来就像是把最大的元素(或最小的元素)经由交换慢慢的‘浮’到数列的顶端,故名冒泡排序。 算法原理 我们通过将 ..
算法
15
引用 •
1
关注
1.6K
面试必备八大排序算法 - 序
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 排序算法,就是入何使记录按照要求排序的方法。 算法的作用,以及重要性这里就不强调和描述了。下面的文章着重叙述常用的八大排序算法,以及通过python怎么去实现。目的是为了零基础入门python的小伙伴能够快速掌握python,以及 ..
算法
15
引用 •
1
关注
837