js算法
文章平均质量分 67
chaseClo
这个作者很懒,什么都没留下…
展开
-
js实现堆排序
堆排序 相关知识: 1、堆是完全二叉树,这意味着除了最后一层的右边元素可能有空缺外,树的每一层都是满的。 2、大顶堆:树中的每一个非叶节点都要大于或等于其子节点,即(arr[i]>=arr[2i+1]&&arr[i]>=arr[2i+2],其中i<=Math.floor(arr.length)-1) 3、小顶堆:树中的每一个非叶节点都要小于于或等于其子节点,即(arr[i]<=arr[2i+1]&&arr[i]<=arr[2i+2],其中0<原创 2020-11-21 18:11:25 · 180 阅读 · 0 评论 -
js实现快速排序
快速排序 基本思想: 快速排序是基于分治法的排序算法。它的基本思想是每次选定一个值(一般是选数组的第一个元素),然后对数组进行遍历,以选定的值将数组分成两个子数组(一个数组中所有值都比选定的值小,另一个数组中所有的值都比选定的值大),再对所有子数组进行递归,直到每一个子数组都只包含一个数。 步骤 1、选定一个分隔值,将其保存在变量temp中(一般选数组第一个值) 2、设置两个位置变量left指向数组的第一个元素,right指向数组的最后一个元素 3、先将right向左移,当指向的值大于temp时,直接略过,原创 2020-11-11 17:39:50 · 149 阅读 · 2 评论 -
js实现冒泡排序算法
冒泡排序 基本思想(正序): 1、每次循环从数组头部向后进行比较,找到一个最大的数放在数组尾部,直到完成了排序。 2、每次循环从数组尾部向前进行比较,找到一个最小的数放在数组头部,直到完成了排序。 实现方法(从头部遍历,尾部遍历类似): 用两层循环。外层循环用来保证内层循环每次都从数组头开始向后进行比较;内层循环在遍历数组的同时将当前位置的值与后面相邻的值进行比较,如果当前的值比后面相邻的值大,就交换两值,然后继续比较后面的值。每次内循环都会找出一个最大的值放在数组最后面。 冒泡排序代码 : functio原创 2020-11-07 16:29:41 · 446 阅读 · 0 评论