JS幾種常見演算法

2021-09-11 17:45:55 字數 2089 閱讀 5254

1.1 氣泡排序原理

1.2 氣泡排序例項

var examplearr = [8, 94, 15, 88, 55, 76, 21, 39];

function sortarrbybubble(arr) }}

return arr;

}sortarrbybubble(examplearr);

console.log(examplearr);

複製**

2.1、 二路歸併排序原理

2.2、 二路歸併的理解

二路歸併排序主旨是「分解」與「歸併」

分解:  

歸併:

2.3 二路歸併的理解

2.4 二路歸併例項

function mergesort(arr) 

//設立中間值

var middle = parseint(arr.length / 2);

//第1個和middle個之間為左子列

var left = arr.slice(0, middle);

//第middle+1到最後為右子列

var right = arr.slice(middle);

if (left == "undefined" && right == "undefined")

return merge(mergesort(left), mergesort(right));

}function merge(left, right) else

}//經過上面一次迴圈,只能左子列或右子列乙個不為空,或者都為空

while (left.length)

while (right.length)

return result;

}// 測試資料

var nums = [6, 1, 4, 8, 2, 7, 3, 5];

console.log(mergesort(nums))

複製**

3.1 斐波那契數列

3.2 斐波那契數列 例項

function fibonacci(n) 

return fibonacci(n - 1) + fibonacci(n - 2);

}console.log(fibonacci(8))

// 輸出結果34

複製**

4.1、什麼是二分查詢

二分法查詢,也稱折半查詢,是一種在有序陣列中查詢特定元素的搜尋演算法。 查詢過程可以分為以下步驟:

4.2、二分查詢例項

非遞迴演算法

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23, 44, 86];

function binarysearch(arr, key) else

if (key > arr[mid]) else

if (key < arr[mid]) else

}};var result = binarysearch(arr, 10);

console.log(result); // 9 返回目標元素的索引值

複製**

遞迴演算法

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23, 44, 86];

function binarysearch(arr, low, high, key)

var mid = parseint((high + low) / 2);

if (arr[mid] == key) else

if (arr[mid] > key) else

if (arr[mid] < key)

};var result = binarysearch(arr, 0, 13, 10);

console.log(result); // 9 返回目標元素的索引值

複製**

js常見的幾種排序演算法

最近自己總結了js常見的幾種排序演算法,並進行了簡單的測試和對比。包括 氣泡排序,插入排序,選擇排序,快速排序,歸併排序等。氣泡排序比較簡單,就是從前往後依次比較相鄰的兩個值,如果前乙個大於後乙個值就交換位置,一趟之後最大的值就排在最後一位了,然後同理在排序剩下的n 1 n 2 個數 如下 func...

js的幾種常見的演算法排序總結

思想 比較相鄰的兩個元素的大小,順序如果相反的話則進行交換,這樣的話每次迴圈都可以將最小的或者最大的元素放到後面,最終達到排序的效果 可公升序可降序 實現var array 3 4,1 5,2 45,1 23 function bubblesort arr return arr console.lo...

JS幾種常見排序方法

比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個 資料交換。function bubblesort arr return arr 1 先從陣列中取出乙個數作為基準數。2 分割槽將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數...