时间: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邮箱联系删除。
大家在PHPmailer群发Gmail时会遇到许多常见问题,下面为大家总结了一些常见问题,希望对大家的学习有所帮助。1.Couldnotauthenticate
在网页设计中很多设计师容易犯一些共同的错误,本文就来讨论一些在当今网站设计中比较常见的问题,下面请看由昆明网站设计人员总结的常见的设计错误。 &middo
近半年持续关注了一些用户反馈和客服电话,从一些常见问题中总结出了八点因特网用户常见心理特征,在此共享,希望能共同努力提高用户体验。1、惯性用户:「你们的排序按钮
近半年持续关注了一些用户反馈和客服电话,从一些常见问题中总结出了八点因特网用户常见心理特征,在此共享,希望能共同努力提高用户体验。1、惯性用户:「你们的排序按钮
今天抽点时间把javascript中的一些常用的数组算法做一下总结,以方便大家面试笔试或者日常开发过程中用到。其中部分算法来自网络,这里做了下汇总整理。文章末尾