记一次小算法--字符串按出现的次数排序
// 需求:一串字符串,例如:`1,2,3,4,5,6,6,7,8,8,9,8,6,6,5,5,4,4,4,4,3,3,1` // 按出现次数排序 function sortByCount(str) { // 1、字符串转数组 let strToArr = str.split(`,`); // 2、定义两个空的数组 let arr1 = []; let arr2 = []; // 3、循环遍历 strToArr.forEach(val => { // indexOf()找到数组的第一个索引,找不到就是-1 let flag = arr1.indexOf(val); console.log(flag); if (flag < 0) { arr1.push(val); arr2.push(1); } else { arr2[flag]++; } }); let arrTmp = arr1.slice(); arr1.sort((a, b) => { let flaga = arrTmp.indexOf(a); let flagb = arrTmp.indexOf(b); return arr2[flagb] - arr2[flaga]; }); return arr1.toString(); } const res = sortByCount(`1,1,2,2,3,3,3,4`); // 打印输出结果 console.log(res);
相关推荐
randy0 2020-11-17
lixiaotao 2020-10-07
美丽的泡沫 2020-09-08
nongfusanquan0 2020-08-18
hang0 2020-08-16
earthhouge 2020-08-15
算法改变人生 2020-07-28
troysps 2020-07-19
Broadview 2020-07-19
chenfei0 2020-07-18
风吹夏天 2020-07-07
yangjingdong00 2020-07-05
数据与算法之美 2020-07-05
shawsun 2020-07-04
数据与算法之美 2020-07-04
要知道时间复杂度只是描述一个增长趋势,复杂度为O的排序算法执行时间不一定比复杂度为O长,因为在计算O时省略了系数、常数、低阶。实际上,在对小规模数据进行排序时,n2的值实际比 knlogn+c还要小。
Evankaka 2020-07-04
田有朋 2020-06-28