问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

web前端javascript能实现什么算法或者计算

发布网友 发布时间:2022-04-21 21:08

我来回答

2个回答

懂视网 时间:2022-04-20 09:28

我了解的就是一些广告的投放需要用到一些算法,前端我觉得算法用处不大,顶多和后端协作一下。当然,那些经典的算法还是得了解下 看看这个吧,用算法来实现js版本的增量更新,让用户只下载更新的代码,基本做到字符级别的精确度:mtjs/mt · GitHub 这么说吧,JS他爹本来中意的是函数式。如果你把JS这个语言当C那么用只能是痛不欲生,如果把他当函数式用的话,会觉得矮油不错哦。

jQuery的作者就是看破了这一点,从函数式那边借了点儿皮毛过来,现在一大堆的前端哭着喊着离不开jQuery了。

热心网友 时间:2022-04-20 06:36

在Web开发中,JavaScript很重要,算法也很重要。下面整理了一下一些常见的算法在JavaScript下的实现,包括二分法、求字符串长度、数组去重、插入排序、选择排序、希尔排序、快速排序、冒泡法等等。仅仅是为了练手,不保证高效与美观,或许还有Bug,有时间再完善吧。

1.二分法:

function binary(items,value){

var startIndex=0,

stopIndex=items.length-1,

midlleIndex=(startIndex+stopIndex)>>>1;

while(items[middleIndex]!=value && startIndex

if(items[middleIndex]>value){

stopIndex=middleIndex-1;

}else{

startIndex=middleIndex+1;

}

middleIndex=(startIndex+stopIndex)>>>1;

}

return items[middleIndex]!=value ? false:true;

}

2.十六进制颜色值的随机生成:

function randomColor(){

var arrHex=["0","2","3","4","5","6","7","8","9","a","b","c","d"],

strHex="#",

index;

for(var i=0;i < 6; i++){

index=Math.round(Math.random()*15);

strHex+=arrHex[index];

}

return strHex;

}

一个求字符串长度的方法:

function GetBytes(str){

var len=str.length,

bytes=len;

for(var i=0;i < len;i++){

if(str.CharCodeAt>255){

bytes++;

}

}

return bytes;

}

3.js实现数组去重:

Array.protype.delRepeat=function(){

var newArray=new Array();

var len=this.length;

for(var i=0;i < len;i++){

for(var j=i+1;j < len;j++)

{

if(this[i]==this[j])

{

++i;

}

}

newArray.push(this[i]);

}

return newArray;

}

4.插入排序。所谓的插入排序,就是将序列中的第一个元素看成一个有序的子序列,然后不段向后比较交换比较交换。

function insertSort(arr){

var key;

for(var j = 1; j < arr.length ; j++){

//排好序的

var i = j - 1;

key = arr[j];

while(i >= 0 && arr[i] > key){

arr[i + 1] = arr[i];

i --;

}

arr[i + 1] = key;

}

return arr;

}

5.选择排序。其实基本的思想就是从待排序的数组中选择最小或者最大的,放在起始位置,然后从剩下的数组中选择最小或者最大的排在这公司数的后面。

function selectionSort(data)

{

var i, j, min, temp , count=data.length;

for(i = 0; i < count - 1; i++) {

/* find the minimum */

min = i;

for (j = i+1; j < count; j++)

{

if (data[j] < data[min])

{ min = j;}

}

/* swap data[i] and data[min] */

temp = data[i];

data[i] = data[min];

data[min] = temp;

}

return data;

}

6.希尔排序,也称递减增量排序算法。其实说到底也是插入排序的变种。

function shellSort(array){

var stepArr = [1750, 701, 301, 132, 57, 23, 10, 4, 1]; //
reverse()在维基上看到这个最优的步长较小数组

var i = 0;

var stepArrLength = stepArr.length;

var len = array.length;

var len2 = parseInt(len/2);

for(;i < stepArrLength; i++){

if(stepArr[i] > len2){

continue;

}

stepSort(stepArr[i]);

}

// 排序一个步长

function stepSort(step){

//console.log(step) 使用的步长统计

var i = 0, j = 0, f, tem, key;

var stepLen = len%step > 0 ? parseInt(len/step) + 1 : len/step;

for(;i < step; i++){// 依次循环列

for(j=1;/*j < stepLen && */step * j + i < len;
j++){//依次循环每列的每行

tem = f = step * j + i;

key = array[f];

while((tem-=step) >= 0){// 依次向上查找

if(array[tem] > key){

array[tem+step] = array[tem];

}else{

break;

}

}

array[tem + step ] = key;

}

}

}

return array;

}

7.快速排序。其实说到底快速排序算法就系对冒泡排序的一种改进,采用的就是算法理论中的分治递归的思想,说得明白点,它的做法就是:通过一趟排序将待排序的纪录分割成两部分,其中一部分的纪录值比另外一部分的纪录值要小,就可以继续分别对这两部分纪录进行排序;不段的递归实施上面两个操作,从而实现纪录值的排序。

function quickSort(arr,l,r){

if(l < r){

var mid=arr[parseInt((l+r)/2)],i=l-1,j=r+1;

while(true){

while(arr[++i] < mid);

while(arr[--j]>mid);

if(i>=j)break;

var temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

quickSort(arr,l,i-1);

quickSort(arr,j+1,r);

}

return arr;

}

8.冒泡法:

function bullSort(array){

var temp;

for(var i=0;i < array.length;i++)

{

for(var j=array.length-1;j > i;j--){

if(array[j] < array[j-1])

{

temp = array[j];

array[j]=array[j-1];

array[j-1]=temp;

}

}

}

return array;

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
北京协和售后 spcp代收费是什么 Doppelherz/双心 铁元营养口服液 500ml-详细介绍 淘宝阿尔卑斯店的德国铁元怎么样? 后面的肩膀缝疼因为什么 刮痧后一躺下肩膀疼的要命 “亭台六七座”的出处是哪里 mahini 是什么意思? 外阴溃烂了怎么办 外阴溃疡,溃疡处伤口不愈合,可以用什么药 最便宜的墨汁是什么成分? 墨汁是如何制作出来的? win10 cortana听不到我的声音!!急!!麦克风好的... 新版Win10小娜怎么没有 只能听我的声音 急!更新win10系统后 surface book Cortana (小娜... 华硕win10的小娜 只有我插着耳机才能听见我说话 如... 报考一级造价工程师需要报培训班嘛? win10小娜没声音怎么办 win10小娜不说话解决方法 造价师培训哪个老师讲的好 想报个一级造价师培训班,身边有人给我推荐筑成教... win10系统的小娜听不见我的声音怎么办 造价师培训,造价师培训哪家好,造价师培训机构 求造价工程师考试的培训班?哪个好点? 急急急!!想报一个造价师的培训班,哪家比较好啊? WIN10的微软小娜听不到我的声音 请问造价师考试培训,哪一个培训机构比较好? win10更新后小娜听不见我的声音 一般造价师培训班多少钱 win10微软小娜听不到我声音怎么办? 一级造价工程师培训机构哪家好? javascript代码实现 JavaScript 代码实现功能 JavaScript分支代码 求一个JavaScript算法 用javascript编程写代码。 有几种形式执行javascript代码 求javascript仿面向对象编程实例代码(简单明了的... JavaScript代码怎么实现? javascript可以这么写代码吗?function里面有each ... 用Javascript写排序算法的动画演示 1到100的质数JavaScript代码 JavaScript中,1)何为事件驱动模式(文字陈述和代... javascript实现分级目录 使用Javascript实现扫雷游戏的算法,用自然语言表... 抖音头像怎么设置远景 javascript实例代码原理的教程 javaScript算法 a3次方+b3次方+c3次方=a+b=c 而且a... 使用Javascript编写程序,实现计算斐波纳契数列 求JavaScript实现网页代码 抖音购物头像怎么设置?