常用小算法 ﹏ヽ暗。殇╰゛Y 2022-03-21 13:47 196阅读 0赞 ### 排序 ### // 排序从小到大 let a = [5,3,12,16,2,35,4] a.forEach((i,index) => { a.forEach((j,index1) => { if (index1 > index && a[index] > a[index1]) { let v = a[index] let x = a[index1] a[index] = x; a[index1] = v; } }) }); console.log(a); // 输出 [2, 3, 4, 5, 12, 16, 35] // 从大到小 a.forEach((i,index) => { a.forEach((j,index1) => { if (index1 > index && a[index1] > a[index]) { let v = a[index] let x = a[index1] a[index] = x; a[index1] = v; } }); }); console.log(a); // 输出[35, 16, 12, 5, 4, 3, 2] 思路:已 5,3,12,16,2,35,4 为例 第一个和第二个比较 如果第一个大于二个 那么交换位置 然后第一个在和第三个比较 以此类推比较。 一轮下来最小的就会排在最前头。第二轮在那第二个和第三个比较....。第二轮就会把第二小的排在第二位...(index1 > index 判断了只会和下一个进行比较) ### 树转换 ### 1. 第一种 const list = [{"id": 1, "name": "一级"},{"id": 2, "name": "二级", "pid": 1},{"id": 3, "name": "三级", "pid": 2}, {"id": 4, "name": "二级", "pid": 1},{"id": 5, "name": "一级01"},{"id": 6, "name": "二级", "pid": 5},{"id": 7, "name": "三级01", "pid": 2}] const listTree = [] recursion = (arr,data) => { list.forEach((json,i) => { if (json.pid === data.id) { data.list.push(json); json.list=[]; recursion(list,json); } }) } list.forEach((json,i) => { if (!json.pid) { json.list = []; listTree.push(json); recursion(list,json) } }) 1. 第二种 const list = [{"id": 1, "name": "一级"},{"id": 2, "name": "二级", "pid": 1},{"id": 3, "name": "三级", "pid": 2}, {"id": 4, "name": "二级", "pid": 1},{"id": 5, "name": "一级01"},{"id": 6, "name": "二级", "pid": 5},{"id": 7, "name": "三级01", "pid": 2}] recursion = (arr, pid)=> { const list1 = []; arr.forEach((json,i) => { if (json.pid === pid) { list1.push(json); const list2=recursion(list,json.id); if (list2.length > 0) { json.list = list2; } } }); return list1; } const listTree = recursion(list) ## 合计次数并通过出现的次数排序 ## // 合计次数并通过出现的次数排序 let a = [5,3,12,16,2,35,4,5,6,3,4,6,7,8,6,3,4,5,6,7,9,1,2,4,5,8,3,4,6,7,8,5,4,3,2,9]; // 作为出现的次数json组,格式[{"number": 3, "frequency": 4}.......] const list = []; //先计算出每个数字出现的次数 a.forEach((number) => { let on = true; list.forEach((json) => { if (number === json.number ) { json.frequency = json.frequency +1; on = false; } }); if (on) { const json = {"number": number, "frequency": 1}; list.push(json); } }); console.log(list); // 根据frequency进行正序排序 list.forEach((json,index) => { list.forEach((json1,index1) => { if (index1 > index && list[index].frequency > list[index1].frequency) { let v = list[index1] let x = list[index] list[index] = v; list[index1] = x; } }) }); console.log(list); // 根据frequency进行倒叙序排序 list.forEach((json,index) => { list.forEach((json1,index1) => { if (index1 > index && list[index].frequency < list[index1].frequency) { let v = list[index1] let x = list[index] list[index] = v; list[index1] = x; } }) }); console.log(list);
相关 常用算法总结 -------------------- [KMP算法][KMP] 简介 kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。 kmp算法完成的任 桃扇骨/ 2022年08月07日 15:34/ 0 赞/ 148 阅读
相关 常用算法介绍 递归法 算法定义:递归法是指一个过程或函数在定义或说明中又直接或间接调用自身的一种方法。在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。在递归调用的过程中系统 男娘i/ 2022年06月15日 06:59/ 0 赞/ 211 阅读
相关 常用算法 冒泡排序: 冒泡排序是一种极其简单的排序算法,也是我接触到的第一种算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复 素颜马尾好姑娘i/ 2022年06月08日 00:18/ 0 赞/ 159 阅读
相关 CTR常用算法 广告点击率预估常用算法 ![CTR常用算法][CTR] [CTR]: /images/20220519/594707eec0de4b339dcb6fe15752f74b 港控/mmm°/ 2022年05月19日 12:04/ 0 赞/ 156 阅读
相关 常用排序算法 1. 插入排序: include "main.h" void insertSort(int data, int length) { 蔚落/ 2022年04月16日 04:49/ 0 赞/ 217 阅读
相关 常用小算法 排序 // 排序从小到大 let a = [5,3,12,16,2,35,4] a.forEach((i,index) => { a.f ﹏ヽ暗。殇╰゛Y/ 2022年03月21日 13:47/ 0 赞/ 197 阅读
相关 常用排序算法 ![1577416-20190103075537826-1565472048.png][] 插入排序 非常简单的排序算法,时间复杂度为O(n2),是稳定的排序算法 ╰半橙微兮°/ 2022年01月07日 17:43/ 0 赞/ 295 阅读
相关 面试常用算法 1. 求数组中和最大的子序列 2. 快速排序 基本思想在于把排序对象分割为两列子序列,而其中一个子序列的值都大雨另一子序列,并且进一步递归排序所有子序列 stat 傷城~/ 2021年10月24日 02:32/ 0 赞/ 325 阅读
相关 常用字符串算法 一、判断两个字符串是否包含相同的内容 1.巧用数组下标实现,把用字符的ASCII码值当作下标,记录出现的字符,然后对两字符串进行遍历 / 判断s Dear 丶/ 2021年09月28日 19:42/ 0 赞/ 320 阅读
还没有评论,来说两句吧...