導航:首頁 > 源碼編譯 > javascript演算法庫

javascript演算法庫

發布時間:2022-05-22 15:13:29

❶ 求網頁端的javaScript的HMAC-SHA1加密演算法。最近遇到了需要一些加密演算法的地方,然而

題主可以考慮使用 CryptoJS 這個庫,包含很多種加密方式,而且採用了 RequireJS,既支持 NodeJS 服務端也支持普通瀏覽器客戶端。文檔寫的也很詳實。

GitHub 傳送門:https://github.com/brix/crypto-js

❷ JS常用的排序演算法有哪些,如何實現這些演算法

1.冒泡排序
var bubbleSort = function (arr) {
var flag = true;
var len = arr.length;
for (var i = 0; i < len - 1; i++) {
flag = true;
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
flag = false;
}
}
if (flag) {
break;
}
}
};
2.選擇排序
var selectSort = function (arr) {
var min;
for (var i = 0; i < arr.length-1; i++) {
min = i;

❸ 什麼是javascript演算法

當然是用 javascript 寫成的演算法,用別的語言寫的比如c就叫c語言演算法。

❹ web前端javascript能實現什麼演算法或者計算

在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;

}

❺ 求個JavaScript演算法

<script>

functionstar(num){

if(num<60)return0

return(parseInt((num-50)/10))

}

for(vari=0;i<=101;i++){

document.write(i+'='+star(i)+'星');

}

//0=0星1=0星2=0星3=0星4=0星5=0星6=0星7=0星8=0星9=0星10=0星11=0星12=0星13=0星14=0星15=0星16=0星17=0星18=0星19=0星20=0星21=0星22=0星23=0星24=0星25=0星26=0星27=0星28=0星29=0星30=0星31=0星32=0星33=0星34=0星35=0星36=0星37=0星38=0星39=0星40=0星41=0星42=0星43=0星44=0星45=0星46=0星47=0星48=0星49=0星50=0星51=0星52=0星53=0星54=0星55=0星56=0星57=0星58=0星59=0星60=1星61=1星62=1星63=1星64=1星65=1星66=1星67=1星68=1星69=1星70=2星71=2星72=2星73=2星74=2星75=2星76=2星77=2星78=2星79=2星80=3星81=3星82=3星83=3星84=3星85=3星86=3星87=3星88=3星89=3星90=4星91=4星92=4星93=4星94=4星95=4星96=4星97=4星98=4星99=4星100=5星101=5星

</script>

❻ Javascript中有哪些比較成熟的機器學習演算法框架

應該是沒有的
除了Python以外,沒有哪個語言做這種比較全面的機器學習框架
更不要說js這種主要是前端的語言

❼ JavaScript裡面的演算法是什麼意思

就是演算法,比如快速排序演算法。
演算法都一樣,到了javascript中只能用js的語法寫。演算法比較抽象,舉個例子吧!比如你現在要吃飯,要燒水,要做飯,要看電影。怎麼辦呢?你可以先做飯然後吃飯燒水再看電影,但時間花的長,現在如果你先把水燒著,燒水是熱水器的事,你就可以做飯了,飯做完了,這時水也燒好了。現在你再一邊看電影一邊吃飯,這樣你就省了很多時間。這兩種做法就是兩種不同的演算法,當然還有其他的做法也就是演算法,但是第二種演算法肯定是一種好的演算法,因為效率比第一種高多了。在編程里,用某種對應的語言把要做的事表達出來就是一種演算法,當然我們會想著用最好的演算法,所以現在也有演算法和數據結構這門學問。

❽ 記一下JavaScript的幾種排序演算法

emmm,排序演算法……
選擇排序,冒泡排序,快速排序,堆排序,線段樹排序(滑稽),平衡樹排序(超級滑稽),歸並排序,基數排序……

❾ JAVASCRIPT的菜鳥來說怎麼學習演算法

首先說句現實的話,樓主的提問是個偽命題,既然你是javascript菜鳥,那麼學習js演算法有什麼意義呢?其實演算法本和語言沒有什麼關系,但是用某種語言去實踐一些經典演算法就必須要對語言本身的api和特性熟悉才能學好!比如js你如果不懂閉包,柯西化,函數式編程等這些概念,不能自己擼一些基本的插件或者工具庫,那麼你所研究的演算法怎麼可能說有自己的見解,無非是把別人的代碼抄了一遍。另外前端中演算法的目的何在,我覺得更多在於優化,一個巧妙的演算法肯定是提升了性能,解決了某些實際的問題,而不是只是為了裝逼,為了演算法而演算法。不然演算法寫得再好,如果其他方面做得不好,比如兼容性處理得不好,在某個地方提升的一丁點優化並沒有什麼卵用。

❿ javascript 排序演算法

<html>
<body>
<script type="text/javascript">
function partition3way(arr)
{
var i,j,t,loc=0,len=arr.length;

for(i=1;i<len;i++)
{
if(arr[i]<arr[loc])
{
t=arr[i];
for(j=i-1;j>=0;j--)
{
arr[j+1]=arr[j];
}
loc++;
arr[0]=t;
}
else if(arr[loc]==arr[i])
{
t=arr[i];
for(j=i-1;j>=loc+1;j--)
{
arr[j+1]=arr[j];
}
arr[loc+1]=t;
}
}
}
//var arr=[3,1,3,6,2,3,4,5];
var arr=[60,25,100,66,1,36,45,220,77,50,80,60,61,57,68,60,125,30,90,25,44,60];
partition3way(arr);
for(var index in arr)
{
document.write(arr[index]+" ");
}
</script>
</body>
</html>

閱讀全文

與javascript演算法庫相關的資料

熱點內容
南京解壓車要帶什麼 瀏覽:562
天堂2編譯視頻教程 瀏覽:392
伺服器沒有進程怎麼辦 瀏覽:784
阿里雲發布新物種神龍雲伺服器 瀏覽:59
數據結構遞歸演算法統計二叉樹節點 瀏覽:666
ev3怎麼編程 瀏覽:702
gzip壓縮教程 瀏覽:349
解壓模擬例子 瀏覽:984
流媒體伺服器如何實現視頻轉發 瀏覽:57
linux字元串md5 瀏覽:302
支撐突破選股源碼怎麼設置 瀏覽:934
湖南戴爾伺服器維修雲主機 瀏覽:494
解壓到文件夾的視頻都自動隱藏了 瀏覽:569
閱讀器支持php 瀏覽:222
人生需求怎麼解壓 瀏覽:795
pdf列印機找不到 瀏覽:1001
如何同時使用兩個apache伺服器 瀏覽:723
國外php論壇 瀏覽:966
災難是命令 瀏覽:604
linux火狐瀏覽器安裝 瀏覽:71