1.1 js中的排序和搜尋
1.2 排序演算法
1.3 搜尋演算法2.1 氣泡排序
2.2.1 思路
2.2.2 動畫演示
氣泡排序動畫演示
2.2.3 coding part
array.prototype.bubblesort = function ()
}}}
2.2.4 時間複雜度
2.2 選擇排序
2.2.1 思路
2.2.2 動畫演示
選擇排序動畫演示
2.2.3 coding part
array.prototype.selectionsort = function ()
}if(indexmin !== i)
}}
2.2.4 時間複雜度
2.3 插入排序
2.3.1 思路
2.3.2 動畫演示
插入排序動畫演示
2.3.3 coding part
array.prototype.insertionsort = function () else
j--}
this[j] = temp
}}
2.3.4 時間複雜度
2.4 歸併排序
2.4.1 思路
合併兩個有序陣列
2.4.2 動畫演示
歸併排序動畫演示
2.4.3 coding part
array.prototype.mergesort = function () else if(orderleft.length) else if(orderright.length)
}return res
} const res = rec(this)
res.foreach((n, i) => this[i] = n)
}
2.4.4 時間複雜度
2.5 快速排序
2.5.1 思路
2.5.2 動畫演示
快速排序動畫演示
2.5.3 coding part
array.prototype.quicksort = function () else
}return [...rec(left), mid, ...rec(right)]
} const res = rec(this)
res.foreach((n, i) => this[i] = n)
}
2.5.4 時間複雜度3.1 順序搜尋
3.1.1 思路
3.1.2 coding part
array.prototype.sequentialsearch = function(item)
} return -1
}
3.1.3 時間複雜度
3.2 二分搜尋
前提:陣列有序3.2.1 思路
3.2.2 coding part
array.prototype.binarysearch = function(item) else if(element > item) else
} return -1
}
3.2.3 時間複雜度1.1 題目描述
1.2 解題思路
1.3 解題步驟
function mergetwolists(l1, l2) else
p = p.next;
} if(p1)
if(p2)
return res.next
}
1.4 時間複雜度&空間複雜度2.1 題目描述
2.2 解題思路
輸入:n = 10, pick = 62.3 解題步驟輸出:6
function guessnumber(n) else if(res === 1) else if(res === -1)
}}
2.4 時間複雜度&空間複雜度 A 搜尋演算法
啟發式搜尋演算法 要理解 a 搜尋演算法,還得從啟發式搜尋演算法開始談起。所謂啟發式搜尋,就在於當前搜尋結點往下選擇下一步結點時,可以通過乙個啟發函式 來進行選擇,選擇代價最少的結點作為下一步搜尋結點而跳轉其上 遇到有乙個以上代價最 少的結點,不妨選距離當前搜尋點最近一次展開的搜尋點進行下一步搜尋 ...
A 搜尋演算法
a 演算法是基於bfs的一種入門級啟發式搜尋演算法,就是將bfs的佇列改為基於估價的優先佇列,可以快速地找到答案。優先隊列為小根堆 while 優先佇列不為空 取出隊頭並擴充套件 將擴充套件節點以估價值 當前值為優先順序入隊 endwhile估價函式越接近真實值演算法越優,但一定不能大於真實值,否則...
演算法 排序演算法 搜尋演算法
排序演算法 function arraylist this.tostring function item 冒泡 this.bubblesort function function swap arr,index1,index2 改進冒泡,減少內迴圈不必要的比較次數,每一輪最後兩個數下一次沒必要再比較 ...