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 再對左右區間重複第二步,直到各區間只有乙個數...