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常见的算法总结,希望本文能够给大家带来帮助。

以上是 JavaScrip常见的一些算法总结 的全部内容, 来源链接: utcz.com/z/314936.html

回到顶部