![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
文章平均质量分 59
jxfang7788
#非宁静无以致远-_-||
展开
-
给定数轴上n个点,找出一个到他们的距离之和尽量小的点
其实不难猜到,这个最优的解就是这些数的中位数(即排序以后位于中间的数)。我们证明的是给定数轴上n个点,在数轴上的所有点中,中位数离所有顶点之和的距离之和最小。想象一数轴,任意找一个点,它左边有4个点,右边有2个点,把该点往左移动一点点,不要移动太多,以免碰到其他输入点。假设移动了d单位距离,则该点到左边4个点的距离各减少d,该点都右边2个点的距离各增加d,但总的来说,距离之和减少了2d。原创 2015-04-11 12:43:00 · 6366 阅读 · 1 评论 -
常用算法库
转载来源:http://blog.csdn.net/youfangyuan/article/details/78749581. Libnabo libnabo 是一个快速为低维度空间提供K最近邻居算法库。它提供了一个干净的,传统的无标量类型无关的C ++模板API。示例代码:#include "nabo/nabo.h"using namespace Na转载 2017-08-23 15:13:39 · 3796 阅读 · 0 评论 -
各种排序算法汇总
1.冒泡排序冒泡排序,如其名,该算法如同气泡上上升一样, 每次循环比较把最小的数交换到最前面,循环次数为n-1,时间复杂度为O(n^2)void swap(vectorint>& arr, int i, int j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;}//冒泡排序void bubble原创 2017-04-21 12:26:28 · 325 阅读 · 0 评论 -
算法与数据结构:1-5
题目来源:http://www.cnblogs.com/v-July-v/archive/2010/10/11/1983736.html1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \4 8 12原创 2016-12-30 18:11:06 · 312 阅读 · 0 评论 -
算法与数据结构:16-20
第16题:题目(微软):输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。第17题:题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 第18题:题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始原创 2016-12-27 11:00:03 · 396 阅读 · 0 评论 -
POJ题目分类(各种分类合集)
转自:http://blog.csdn.net/kingwolfofsky/article/details/8840207POJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期:一.基本算法: (1)枚举. (poj1753,转载 2015-05-08 17:58:24 · 542 阅读 · 0 评论 -
最大公约数
求最大公约数,是求几个整数的公共约数中最大的一个。解法1:枚举求出所有整数的约数,然后找出最大的公共约数。解法2:质约数分解法整数都做质约数分解,然后取出相同的约数相乘。解法3:欧几里得算法(Euclid算法)若求两个整数a, b的最大公约数gcd(a,b), 其中a>b。如果b能整除a,则gcd(a,b) = b;否则,gcd(a,b) = gcd原创 2015-09-03 21:51:37 · 411 阅读 · 0 评论 -
设计包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。开始的时候觉得蛮简单,只要设置一个变量保存最小的那个值不就行了,不过程序运行后就发现了个问题,如果把最小的那个值pop出来了怎么办。后来在网上找资料说一种普遍的方法就是加一个辅助栈,存入最小值的位置,没错pop一个元素出栈时,也pop辅助栈。下面就直接贴代码原创 2015-05-09 10:28:17 · 665 阅读 · 0 评论 -
STL常用算法(转)
STL常用算法转载 2017-10-07 16:32:40 · 217 阅读 · 0 评论