排序算法
文章平均质量分 80
初识这世间万般留恋
这个作者很懒,什么都没留下…
展开
-
冒泡排序
// 冒泡排序:相领两个元素比较 符合条件的不变 , 不符合条件则调换两个元素位置 // 如let arr = [4,3,1,2,5,8,6] 如果条件以升序排列 则第一次比较arr[0]>arr[1] 则调换两个元素位置 此时arr[1] == 4 arr[1]>arr[2]?继续第一步操作:比较arr[2] arr[3] // 代码实现...转载 2018-07-30 10:07:22 · 137 阅读 · 0 评论 -
二叉树
二叉排序树又叫二叉查找树或者二叉搜索树,它首先是一个二叉树,而且必须满足下面的条件:若左子树不空,则左子树上所有结点的值均小于它的根节点的值;若右子树不空,则右子树上所有结点的值均大于它的根结点的值;左、右子树也分别为二叉排序树;没有键值相等的节点;function BinaryTree(){ var node = function(key){ //节点对象 ...原创 2018-07-30 11:09:10 · 147 阅读 · 0 评论 -
选择排序
选择排序:1.第一个元素与后面的元素比较 2.如何符合比较条件 则交换元素位置 交换元素后 起始位置元素继续与后面的元素比较3.如果不符合条件 不处理 与后面的元素比较4. 一次循环后 数组的首位置是排序的最大值(最小值)然后再次执行第一步 (这时的起始点下标加1)function sort(arr){ for( let i = 0 ; i &l...原创 2018-07-30 12:12:28 · 88 阅读 · 0 评论 -
插入排序
// 插入排序 是将一个数插入到有序数列 要求插入后这个数列仍然有序,从而得到一个新的数列 // 插入排序 又分直接插入排序 二分插入排序(又称折半插入排序)链表插入排序,希尔排序(又称缩小增量排序)。属于稳定排序的一种(通俗地讲,就是两个相等的数不会交换位置) /*直接插入排序 (升序排序): * 1. 定义一个新的...原创 2018-07-30 16:16:09 · 84 阅读 · 0 评论 -
使用骰子作画
本文参考 阮一峰老师《骰子作画的算法》原文链接http://www.ruanyifeng.com/blog/2011/11/dice_portrait.html1计算灰度值方法 /* 任何颜色都由红、绿、蓝三基色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:1.浮点算法:Gray=R*0.3+G*0.59+B*0.112....原创 2018-09-06 13:36:38 · 1812 阅读 · 1 评论 -
快速排序
// 快速排序 : 在一个没有重复元素的数据集中,选择一个元素作为参照物 。 所有小于参照物的元素 都移到这个参照物的左边,大于参照物物的元素,都移到参照物的右边 // 然后不断重复这样的步骤,就能得到一个有序的数据集 let arr = [8,5,6,2,4,3,7,10,20,15]; function quick(arr){...原创 2018-09-07 15:02:04 · 99 阅读 · 0 评论