JavaScrip常见的一些算法总结

时间:2021-05-26

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

一.线性查找:

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

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

二.二分查找:

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

//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;}

三.冒泡排序:

//冒泡排序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;}}}

四.插入排序:

//插入排序//假定当前元素之前的元素已经排好序,先把自己的位置空出来,//然后前面比自己大的元素依次向后移,直到空出一个"坑",//然后把目标元素插入"坑"中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;}

五.字符串反转:

//字符串反转(比如:ABC -> 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常见的算法总结,希望本文能够给大家带来帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章