前言 排序是数据结构主要内容,并不限于语言主要在于思想;大学曾经用C语言研究过一段时间的排序实现, 这段时间有空用JS再将排序知识点熟悉一遍。 下面话不多说了,来一起看看详细的介绍吧 一、代码汇总(一)1、冒泡排序2、改进版冒泡排序3、选择排序4、直接插入排序5、二分插入排序 /** @Author: laifeipeng * @Date: 2019-02-20 10:00:36 * @Last Modified by: laifeipeng* @Last Modified time: 2019-02-21 11:57:58*//********...
本文实例讲述了JS使用栈判断给定字符串是否是回文算法。分享给大家供大家参考,具体如下: /*使用栈stack类的实现*/ function stack() {this.dataStore = [];//保存栈内元素,初始化为一个空数组this.top = 0;//栈顶位置,初始化为0this.push = push;//入栈this.pop = pop;//出栈this.peek = peek;//查看栈顶元素this.clear = clear;//清空栈this.length = length;//栈内存放元素的个数 } function push(element){this.dataStore[t...
本文实例讲述了JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法。分享给大家供大家参考,具体如下: function Node(data,left,right) {this.data = data;this.left = left;this.right = right;this.show = show; } function show() {return this.data; } function BST() {this.root = null;this.insert = insert;this.preOrder = preOrder;this.inOrder = inOrder;this.postOrder = postOrder;this.getMin = ...
本文实例讲述了JavaScript数据结构与算法之二叉树添加/删除节点操作。分享给大家供大家参考,具体如下: function Node(data,left,right) {this.data = data;this.left = left;this.right = right;this.show = show; } function show() {return this.data; } function BST() {this.root = null;this.insert = insert;this.inOrder = inOrder;this.getMin = getMin;this.getMax = getMax;this.find = find;this.remove = remove; } ...
本文实例讲述了JS使用队列对数组排列,基数排序算法。分享给大家供大家参考,具体如下: /* * 使用队列对数组排列,基数排序 *对于0~99的数字,基数排序将数组集扫描两次。 * 第一次按个位上的数字进行排序, * 第二次按十位上的数字进行排序 * */ function Queue(){this.dataStore = [];//存放队列的数组,初始化为空this.enqueue = enqueue;//向队列尾部添加一个元素this.dequeue = dequeue;//删除队首的元素this.theFront = the...
本文实例讲述了JavaScript数据结构与算法之检索算法。分享给大家供大家参考,具体如下: javascript数据结构与算法---检索算法(顺序查找、最大最小值、自组织查询) 一、顺序查找法 /* * 顺序查找法 * * 顺序查找法只要从列表的第一个元素开始循环,然后逐个与要查找的数据进行比较。 * 如果匹配到了,则结束查找。 * 如果到了列表的结尾也没有匹配到,那么这个数据就不存在于这个列表中。 * */ function seqSearch(arr, data) {f...
本文实例讲述了JavaScript数据结构与算法之检索算法。分享给大家供大家参考,具体如下: javascript数据结构与算法---检索算法(二分查找法、计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (arr.length == 0) {return [];}var left = [];//存储小于基准值var right = [];//存储大于基准值var pivot = arr[0];for (var i = 1; i < arr.length; i++) {if (arr[i] < pi...
本文实例讲述了JS实现判断有效的数独算法。分享给大家供大家参考,具体如下: 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 1.数字 1-9 在每一行只能出现一次。 2.数字 1-9 在每一列只能出现一次。 3.数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。数独部分空格内已填入了数字,空白格用 ‘. 表示。 示例 1: 输入:[ ["5","3",".",".","7",".",".",".","."], ["6",".",".","1","9...
本文实例讲述了JS实现的合并两个有序链表算法。分享给大家供大家参考,具体如下: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4可以直接运行的方案: <script> function Node(element) {this.element = element;//当前节点的元素this.next = null;//下一个节点链接 } function List() {this.head = new Node("head");//头...
本文实例讲述了JS实现电话号码的字母组合算法。分享给大家供大家参考,具体如下: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 var letterCombinations = function(digits) {c...
本文实例讲述了JS实现的杨辉三角【帕斯卡三角形】算法。分享给大家供大家参考,具体如下: 杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。 在欧洲,帕斯卡(1623-1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。 帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。题目: 给定非负整数numRows,生成Pascal三角形的第一个numRows。在Pascal的三角形中,每...
本文实例讲述了JS实现计算小于非负数n的素数的数量算法。分享给大家供大家参考,具体如下: 计算小于非负数n的素数的数量 例:输入: 10 输出: 4说明:有4个素数小于10,它们是2,3,5,7。 JS算法示例: <script>var countPrimes = function(n) {let flagArray = [],result = 0;for(let i = 2; i < n; i++){if(flagArray[i] === undefined){flagArray[i] = 1;result++;let j = 2;while(i * j < n){// 将以后与当前值能整除的排除掉f...
本文实例讲述了JavaScript实现获取两个排序数组的中位数算法。分享给大家供大家参考,具体如下: 题目 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。 请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。 你可以假设 nums1 和 nums2 不同时为空。 示例 1:nums1 = [1, 3] nums2 = [2]中位数是 2.0 示例 2:nums1 = [1, 2] nums2 = [3, 4]中位数是 (2 + 3)/2 = 2.5 分析:用数组排序方法轻松解决 JS代码: v...
本文实例讲述了JavaScript数据结构与算法之二叉树插入节点、生成二叉树。分享给大家供大家参考,具体如下: javascript数据结构与算法-- 插入节点、生成二叉树 二叉树中,相对较小的值保存在左节点上,较大的值保存在右节点中/* *二叉树中,相对较小的值保存在左节点上,较大的值保存在右节点中 * * * */ /*用来生成一个节点*/ function Node(data, left, right) {this.data = data;//节点存储的数据this.left = left;this.right =...
本文实例讲述了JavaScript数据结构与算法之基本排序算法定义与效率比较。分享给大家供大家参考,具体如下: javascript数据结构与算法--基本排序算法(冒泡、选择、排序)及效率比较 一、数组测试平台 javascript数据结构与算法--基本排序(封装基本数组的操作),封装常规数组操作的函数,比如:插入新数据,显示数组数据,还有交换数组元素等操作来调用不同的排序算法 function CArray(numElements) {this.dataStore = [];this.p...