文章 2021-12-01 来自:开发者社区

【愚公系列】2021年11月 C#版 数据结构与算法解析(二分查找)

二分查找也称折半查找,它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使....

文章 2021-12-01 来自:开发者社区

【愚公系列】2021年11月 数据结构与算法解析(顺序查找)

顺序查找也称线性搜索(Linear Search),是在一个已知无(或有序)序队列中找出与给定关键字相同的值的具体位置。原理是让关键字与队列中的第1个(或最后1个)位置的值逐个比较,直到找出与给定关键字相同的值为止,它的缺点是效率低下。示例public class Program {    public static void Main(string[] args) { &am...

文章 2021-11-05 来自:开发者社区

经典排序算法解析(四)

八、堆排序    堆排序是比快速排序更加复杂的一种排序算法。堆排序使用到了堆这样一种数据结构。首先我们需要搞清楚什么是堆结构。堆是一种类似完全二叉树,同时又满足如下条件的数据结构:所有子节点的值总是小于(大于)父节点。所有子节点的值都小于父节点的堆叫大顶堆,所有子节点都大于父节点的堆叫小顶堆。    二叉树你应该比较熟悉,下图就是一个小顶堆的示例:此二叉树....

经典排序算法解析(四)
文章 2021-11-05 来自:开发者社区

经典排序算法解析(三)

六、双向冒泡排序    双向冒泡排序是冒泡排序的一种变体,冒泡排序每次比较都是从左向右,找出最大的放在最后。双向冒泡排序则是第一轮从左向右将最大的放最后,第二轮从右向左将最小的放最首,如此交替直到整个数列排序完成。文字描述双向冒泡排序步骤如下:1.从左向右依次比较相邻两个元素,如果顺序不对,则进行交换,如此一轮下来,最大的元素在最后。2.除去已经排序好的元素,从右向左依次比较....

经典排序算法解析(三)
文章 2021-11-05 来自:开发者社区

经典排序算法解析(二)

三、希尔排序    希尔排序也是插入排序的一种,它先将整个数列分割成若干个小的子序列进行插入排序,逐渐减少子序列的个数,直到最后组合成一个数列,完成整个排序过程。希尔排序的过程使用文字描述可以表示为如下几步:1.假设数列元素个数为n,先取一个小于n的增量d1,将所有间隔d1距离的元素放为1组进行插入排序,d1通常取值n/2,向下取整。2.再次取d2<d1,将所有间隔d2....

经典排序算法解析(二)
文章 2021-11-05 来自:开发者社区

经典排序算法解析(一)

许多高级语言中都提供有排序函数,但是掌握一些经典排序算法的基本原理和编码方法还是很有必要,这个学习过程可以帮助我们更好的理解每种排序算法的设计思路,本篇博客将介绍9种十分经典的排序算法,提供了解释性语言JavaScript与编译型语言C的源代码。一、直接插入排序    直接插入排序是最简单的一种排序算法,也最容易理解。它的核心思想为将元素逐个插入一个有序的数列中。用文字描述可....

经典排序算法解析(一)
文章 2021-09-18 来自:开发者社区

任务调度:时间轮算法经典案例解析及应用实现

原创 平勇(润辰) 淘系技术  2020-09-18背景最近的一次招聘面试中,候选人介绍了他基于时间轮算法实现的一套任务调度系统,在我的个人历史工作中简单的场景会直接使用java自带的工具类,如Timer、 ScheduledThreadPool、DelayQueue 配合线程池等方法 ,复杂的一些场景用开源工具包Quartz、集团的SchedulerX等,但一直没....

任务调度:时间轮算法经典案例解析及应用实现
文章 2021-09-11 来自:开发者社区

经典排序算法解析

经典排序算法解析    许多高级语言中都提供有排序函数,但是掌握一些经典排序算法的基本原理和编码方法还是很有必要,这个学习过程可以帮助我们更好的理解每种排序算法的设计思路,本篇博客将介绍9种十分经典的排序算法,提供了解释性语言JavaScript与编译型语言C的源代码。一、直接插入排序    直接插入排序是最简单的一种排序算法,也最容易理解。它的核心思想为将...

经典排序算法解析
文章 2020-05-29 来自:开发者社区

十大经典排序算法动画与解析,看我就够了!(配代码完全版) | 算法必看系列三十八

原文链接 十大经典排序算法 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为 内部排序 和 外部排序 。 内部排序是数据记录在内存中进行排序。 而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 用一张图概括:关于时间复杂度:平方阶 (O(n....

十大经典排序算法动画与解析,看我就够了!(配代码完全版) | 算法必看系列三十八
文章 2020-04-13 来自:开发者社区

Spark MLlib中KMeans聚类算法的解析和应用

本文转自公众号:大数据学习与分享原文链接 聚类算法是机器学习中的一种无监督学习算法,它在数据科学领域应用场景很广泛,比如基于用户购买行为、兴趣等来构建推荐系统。 核心思想可以理解为,在给定的数据集中(数据集中的每个元素有可被观察的n个属性),使用聚类算法将数据集划分为k个子集,并且要求每个子集内部的元素之间的差异度尽可能低,而不同子集元素的差异度尽可能高。简而言之,就是通过聚类算法处理给定的数.....

Spark MLlib中KMeans聚类算法的解析和应用

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

相关镜像