算法
收集一些求学期间学到的的算法
一路是夜幕沉沙
终究会坠落
展开
-
Python 实现 KNN 分类算法
文章目录KNNKNN 分类算法步骤KNN 的优缺点python 实现本文将详细讲述 KNN 算法及其 python 实现KNNKNN(K-Nearest Neighbour)即 K最近邻,是分类算法中最简单的算法之一。KNN 算法的核心思想是 如果一个样本在特征空间中的 k 个最相邻的样本中的大多数属于某一个类别,则将该样本归为该类别KNN 分类算法步骤有 N 个已知分类结果的样本点,对...原创 2020-02-26 15:07:00 · 2660 阅读 · 0 评论 -
Java 求最大子数组
Background在某天购入股票后抛出,求如何取得最大利润。已知股票趋势如图所示。 Thought我们都知道——利润 = 售价 - 成本,即两者之差越大则利润越大。要求利润的最大值,不妨先计算出当天与前一天股价的差,得到的股价浮动数组,然后找其最大子数组,即为原问题的解。对于最大子数组,最简单粗暴的方法就是两层 for,遍历所有子数组后,自然能求出最大子数组。更好的解决办法是用分...原创 2020-02-02 11:04:23 · 1283 阅读 · 0 评论 -
Java 分治策略实现归并排序
Thought能不能使用分治策略的关键是 子问题的最优解是否可以通过某种手段得到原问题的最优解。对于归并排序,将两个已经有序的子问题序列进行合并,就可得到一个有序序列,以此类推,最终可将所有子问题序列合并成一个有序序列,而得到的有序序列就是最终答案。 图片来自简书,链接:https://www.cnblogs.com/chengxiao/p/6194356.html至于如何合...原创 2020-02-02 11:03:10 · 800 阅读 · 0 评论 -
Java 分治策略实现快速排序
ThoughtDivide: Partition the array into two subarrays around a pivot x such that elements in lower subarray ≤ x ≤ elements in upper subarray.Conquer: Recursively sort the subarrays.Combine: Trivia...原创 2020-02-02 11:01:57 · 900 阅读 · 0 评论 -
Java 建立大顶堆
Thought从最后一个有孩子的父节点开始调整,若父节点的值小于左右孩子结点的值(如果有的话),就与该孩子结点交换位置。若发生了交换,由于原来父节点到了他的孩子结点上,可能破坏了现在这颗以原来父节点为根节点的子树,所以需要重复以上步骤,即递归。数组的范围是从 0 ~ length - 1,设父节点的下标为 p,则:p的左孩子下标为:2 * p + 1p的右孩子下标为:2 *p + 2...原创 2020-02-02 11:00:11 · 1212 阅读 · 0 评论