❶ 求网页端的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>