算法概览
本专栏主要介绍算法
FLy_鹏程万里
国内网络安全研究员,专注于Web渗透、移动安全、代码审计、应急响应、内网渗透、区块链安全、云安全等研究方向,擅长渗透测试、红蓝对抗、内网渗透、云安全、区块链安全。
展开
-
【算法】————1、冒泡排序
前言最近感觉自己的思维不是非常灵活,所以想看看算法了,顺便就整理一下之前的内容,做个小记录吧!排序算法排序是计算机程序设计中的一种重要的操作,其功能是将一个任意序列的数据元素,通过排序算法重新排列成一个按关键字有序的序列。a、排序的定义:对一序列对象根据某个关键字进行排序输入:n个数:a1,a2,a3,...,an输出:n个数的排列:a1',a2',a3',...,an',使...原创 2019-04-07 19:07:54 · 490 阅读 · 0 评论 -
【算法】————2、选择排序
算法简介选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。算法描述和实现n个记录的直接选择排序可经过n-1趟直接选择排序得到有序结果。具体算法描述如下:<1>.初始状态...原创 2019-04-07 19:21:08 · 274 阅读 · 0 评论 -
【算法】————3、插入排序
算法简介插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向 前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要 反复把已排序元素逐步向后挪位,为最新元素提供插入空间。算法描述和实现一般来说,插入排序都...原创 2019-04-08 18:59:10 · 246 阅读 · 0 评论 -
【算法】————4、归并排序
算法简介 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段 间有序。若将两个有序表合并成一个有序表,称为2-路归并。算法描述和实现具体算法描述如下:<1>.把长度为n的输入序列分成两个长...原创 2019-04-08 19:02:47 · 307 阅读 · 0 评论 -
【算法】————5、快速排序
算法简介快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。算法描述和实现快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:<1>.从数列中挑出一个元素,称为 "基准"(pivot); <2>.重新排序...原创 2019-04-08 19:06:19 · 234 阅读 · 0 评论 -
【算法】————6、希尔排序
算法简介希尔排序的核心在于间隔序列的设定。既可以提前设定好间隔序列,也可以动态的定义间隔序列。动态定义间隔序列的算法是《算法(第4版》的合著者Robert Sedgewick提出的。算法描述和实现先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,具体算法描述:<1>. 选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1; <2...原创 2019-04-08 19:09:45 · 373 阅读 · 0 评论 -
【算法】————7、堆排序
算法简介堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。算法描述和实现具体算法描述如下:<1>.将初始待排序关键字序列(R1,R2....Rn)构建成大顶堆,此堆为初始的无序区; <2>.将堆顶元素R[1]与最后一个元素R[n]交...原创 2019-04-08 21:13:37 · 272 阅读 · 0 评论 -
【算法】————8、桶排序
算法简介桶排序 (Bucket sort)的工作的原理:假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排算法描述和实现具体算法描述如下:<1>.设置一个定量的数组当作空桶; <2>.遍历输入数据,并且把数据一个一个放到对应的桶里去; <3>.对每个不是空的桶进行排...原创 2019-04-08 21:17:45 · 400 阅读 · 0 评论 -
【算法】—————9、计数排序
算法简介计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。它只能对整数进行排序。算法描述和实现具体算法描述如下:<1>. 找出待排序的数组中最大和最小的元素; <2>. 统计数组中每个值为i的元素出现的次数,存入数组C...原创 2019-04-08 21:21:47 · 239 阅读 · 0 评论 -
【算法】————10、基数排序
算法简介基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再 按高优先级排序。最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。基数排序基于分别排序,分别收集,所以是稳定的。算法描述和实现具体算法描述如下:<1>.取得数组中的最大数,并取得位数; <2>...原创 2019-04-08 21:24:51 · 302 阅读 · 0 评论