算法
跨越七海的风丶
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
链表 —— 快慢指针
心血来潮... 问题:求一个链表倒数第k个数的值? 方法:用快慢指针。既然要求倒数第k个值,就先设两个结点,第一个结点先走k步,第二个结点在头结点处,当第一个结点走到头时,第二个结点的值就是倒数第k个数的值! 结点说明: public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } 算法: public int kthToLast(ListNode head原创 2020-06-03 09:18:17 · 280 阅读 · 0 评论 -
高效排序方法之一 —— 归并排序
一、归并排序 归并排序属于分治算法的一种,所谓分而治之,本质就是讲一个大规模的问题分解为若干个规模较小的相同子问题。大致过程如下: 将待排序元素分成大小大致相同的两个子序列 对两个子序列进行排序 将排好序的有序子序列进行合并,得到最终的有序序列 二、算法图解 用一张图就可以对这个过程有一个清晰的了解了~ 通过...原创 2020-02-29 21:29:38 · 511 阅读 · 0 评论 -
二分搜索法
一、问题描述:给定n个元素,这些元素是有序的,从数组中查找特定的元素x。 个人觉得二分法搜索是分治法里面最简单的一个搜索算法了,就是设置一个下界low和上界high,然后再设一个指针mid ( mid=(low+high)/2 ),然后随着每次搜索mid会在两个区间之间( [low,mid-1] 和 [mid+1,high] )进行移动,对应的,low或者high也要相应地改变位置。**要注意这...原创 2020-02-27 17:57:14 · 593 阅读 · 0 评论 -
贪心算法 —— 背包问题
一、问题描述:有一堆宝物,用车去装载,一次运完(不能超过车的最大承重),要求运走价值高的宝物 这里因为物体是可分割的,所以我采用贪心算法。由题目可以得出,应该选取性价比最高的物品,即:价值/重量要最大才行。所以思路就出来了,每次选择性价比高的物品,如果其重量小于车的载重就装,如果大于就分割,部分装入。话不多说,直接上代码。 二、代码如下: #include <iostream> #...原创 2020-02-24 10:28:42 · 3506 阅读 · 0 评论
分享