微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScrip常见的一些算法总结

下面就简单列举一下javascript中常见的一些算法,需要的朋友可以做一下参考。当然这些算法不仅仅适用于javascript,同样也适用于其他语言。

比较简单,属于入门级的算法

rush:js;"> //A为数组,x为要搜索的值 function linearSearch(A,x) { for (var index = 0; index < A.length; index++) { if (A[index] == x) { return index; } } return -1; }

二.二分查找:

又称折半查找,适用于已排好序的线性结构。

rush:js;"> //A为已按"升序排列"的数组,x为要查询的元素 //返回目标元素的下标 function binarySearch(A,x) { var low = 0,high = A.length - 1; while (low <= high) { var mid = Math.floor((low + high) / 2); //下取整 if (x == A[mid]) { return mid; } if (x < A[mid]) { high = mid - 1; } else { low = mid + 1; } } return -1; }

三.冒泡排序:

rush:js;"> //冒泡排序 function bubbleSort(A) { for (var i = 0; i < A.length; i++) { var sorted = true; //注意:内循环是倒着来的 for (var j = A.length - 1; j > i; j--) { if (A[j] < A[j - 1]) { swap(A,j,j - 1); sorted = false; } } if (sorted) { return; } } }

四.插入排序:

rush:js;"> //插入排序 //假定当前元素之前的元素已经排好序,先把自己的位置空出来, //然后前面比自己大的元素依次向后移,直到空出一个"坑", //然后把目标元素插入"坑"中 function insertSort(A) { for (var index= 1; index< A.length; index++) { var x = A[index]; for (var j = index- 1; j >= 0 && A[j] > x; j--) { A[j + 1] = A[j]; } if (A[j + 1] != x) { A[j + 1] = x; println(A); } } return A; }

五.字符串反转:

CBA) function inverse(s) { var arr = s.split(''); var index= 0,j = arr.length - 1; while (index< j) { var t = arr[index]; arr[index] = arr[j]; arr[j] = t; index++; j--; } return arr.join(''); }

以上内容给大家简单介绍了JavaScrip常见的算法总结,希望本文能够给大家带来帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐