当前位置: 首页 > 编程笔记 >

JavaScrip常见的一些算法总结

谯振国
2023-03-14
本文向大家介绍JavaScrip常见的一些算法总结,包括了JavaScrip常见的一些算法总结的使用技巧和注意事项,需要的朋友参考一下

 下面就简单列举一下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常见的算法总结,希望本文能够给大家带来帮助。

 类似资料:
  • 本文向大家介绍Java一些常见的出错异常处理方法总结,包括了Java一些常见的出错异常处理方法总结的使用技巧和注意事项,需要的朋友参考一下 一些平时常见的错误及解决办法,我 是新手,每次遇到的错误都记录了下来。 1. 404错误 description The requested resource (/Struts2_0100_Introduction/hello.action) is not a

  • 本文向大家介绍Redis中一些最常见的面试问题总结,包括了Redis中一些最常见的面试问题总结的使用技巧和注意事项,需要的朋友参考一下 前言 经过长达一周的奔波和面试,电话面试,回首今天终于成功的入职了,总共面试了大概10家公司,包括阿里,京东,IBM等等,京东技术过了,学历因为非统招就被pass了,阿里面了2次电话面试就没下文了,估计是我当时最后提问题的时候减分了吧,其他的也有一些offer,不

  • 本文向大家介绍Mybatis常见注解有哪些(总结),包括了Mybatis常见注解有哪些(总结)的使用技巧和注意事项,需要的朋友参考一下 当下,注解非常流行,以前很长篇的代码,现在基本上一个注解就能搞定。 那,在Mybatis中又有哪些注解呢? Mybatis中的注解基本上都在org.apache.ibatis.annotations目录下:   @MapperScan 该注解存在着争议,但不可否认

  • 本文向大家介绍JavaScript数组排序的六种常见算法总结,包括了JavaScript数组排序的六种常见算法总结的使用技巧和注意事项,需要的朋友参考一下 前言 着急用的话,选择前两个就行了,后面的看看就好。 开发中,遇到数组排序的需求很频繁,这篇文章会介绍几个常见排序思路。 一、希尔排序(性能最好) 如果要从大到小排列,则 while(arr[n] > arr[n - interval] &&

  • 本文向大家介绍Object类的常见方法总结 相关面试题,主要包含被问及Object类的常见方法总结 时的应答技巧和注意事项,需要的朋友参考一下 Object类是一个特殊的类,是所有类的父类。它主要提供了以下11个方法:

  • 本文向大家介绍jQuery中的一些常见方法小结(推荐),包括了jQuery中的一些常见方法小结(推荐)的使用技巧和注意事项,需要的朋友参考一下 1.filter()和not()方法 filter()和not()是一对反方法,filter()是过滤. filter()方法是针对元素自身。(跟has()方法有区别) 2.has()方法 has()方法表示的是包含的意思,它跟filter()方法是有区别