算法
alinshen
这个作者很懒,什么都没留下…
展开
-
找出不在预定数组中的自然数
有这么一个有趣的问题,问:有这么一个不重复的自然数数组,自然数长度为N,而数组长度为N-2,依次随机把自然数放进数组中,请找出2个没有被放进去的自然数。例如:这个自然数数组是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]这十个数,某次随机放入的顺序是[2, 1, 3, 5, 7, 9, 0, 4],那么6和8这两个数没有被放入进来。有两个思路可以解决这个问题桶排序解决转载 2017-05-26 06:10:23 · 325 阅读 · 0 评论 -
二分查找(面试必备)
在计算机科学中,二分搜索(binary search),也称折半搜索(half-interval search)、对数搜索(logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较转载 2017-06-11 17:02:53 · 249 阅读 · 0 评论 -
直插,快排,堆排,归并排序的分析
一:直接插入排序TOC直接插入排序(Insertion Sort)可以说是排序里最简单的了。void InsertSort(int array[], int left, int right){ int temp; int j; for (int i = left + 1; i <= right; i++) { temp =转载 2017-06-11 17:06:54 · 316 阅读 · 0 评论 -
二叉树的各种操作(面试必备)
本篇针对面试中常见的二叉树操作作个总结:(1):前序遍历,中序遍历,后序遍历;(2):层次遍历;(3):求树的节点数;(4):求树的叶子数;(5):求树的深度;(6):求二叉树第 k 层的节点个数;(7):判断两棵二叉树是否结构相同;(8):求二叉树的镜像;(9):求两个节点的最低公共祖先节点;(10):求任意两节点距离;(11):找出二叉树中某个节点的转载 2017-06-11 17:13:41 · 433 阅读 · 0 评论 -
Java中的经典算法之冒泡排序
原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。举例说明:要排序数组:int[] arr={6,3,8,2,9,1}; 第一趟排转载 2017-06-11 19:26:15 · 182 阅读 · 0 评论 -
折线平行线的计算方法
给定一个简单多边形,多边形按照顺时针或者逆时针的数许排列内部等距离缩小或者外部放大的多边形,实际上是由距离一系列平行已知多边形的边,并且距离为L的线段所构成的。外围的是原多边形,内侧是新的多边形算法构造多边形的相邻两条边,L1和L2,交于Pi点做平行于L1和L2,平行线间距是L的,并且位于多边形内部的两条边,交于Qi我们要计算出Qi的坐标如图,P转载 2017-10-10 07:57:09 · 4155 阅读 · 0 评论