数据结构和算法
文章平均质量分 66
梦颖飞燕
这个作者很懒,什么都没留下…
展开
-
稳定排序和不稳定排序
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相转载 2017-06-18 11:14:50 · 173 阅读 · 0 评论 -
位运算
位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的转载 2017-06-22 16:44:35 · 269 阅读 · 0 评论 -
js实现二分搜索的两种方法
一、递归方法 function binarySearch(arr,item,start,end){ var length = arr.length, start = start || 0, end = end || length -1, mid = Math.floor((start+end)/2); if (arr[mid] === item) {原创 2017-08-24 09:15:30 · 308 阅读 · 0 评论 -
js实现五种排序
一、冒泡排序思想:比较两个相邻的项,如果前者比后者大,则交换 function bubbleSort(arr){ var length = arr.length, temp; for (var i=0;i<length;i++ ) { for (var j=0;j<length-1-i;j++)//减i是除去不交换的情况 { if (a原创 2017-08-24 09:59:49 · 826 阅读 · 0 评论 -
数组去重的五种方式
法一:indexOf方法 //一层循环,创建新数组 function unique(arr){ var newArr = []; for (var i=0;i<arr.length;i++ ) { if ( newArr.indexOf(arr[i]) == -1 )//判断目标数组中在原数组里是否存在 { newArr.push(arr[i]); }原创 2017-09-07 20:42:26 · 535 阅读 · 0 评论 -
经典递归解决汉诺塔!
算法:当只有一个盘子的时候,只需要从将A塔上的一个盘子移到C塔上。 当A塔上有两个盘子是,先将A塔上的1号盘子(编号从上到下)移动到B塔上,再将A塔上的2号盘子移动的C塔上,最后将B塔上的小盘子移动到C塔上。 当A塔上有3个盘子时,先将A塔上编号1至2的盘子(共2个)移动到B塔上(需借助C塔),然后将A塔上的3号最大的盘子移动到C塔,最后转载 2017-10-22 11:02:49 · 286 阅读 · 0 评论