演算法學習

1/4ページ

大數手演算法開平方(Java實現)

1. 手演算法開平方原理: 2. Java程式碼: 1. 手演算法開平方原理: 話不多說直接上圖: 具體步驟(觀察圖片以計算除法的方式寫出來): 1.首先從小數點開始向左向右將數字兩兩分組 2.然後從前往後依次選取2位數 3.對於第1組數字remainder(餘數),求出一個shang(商),使得s […]

圖片預處理之PCA(UFLDL Tutorial)

原文連結UFLDL Tutorial PCA PCA主成分分析(Principal Components Analysis)是重要的降低維度的方法,可以大大提高演算法執行的速度。PCA更是應用白化(whiten)的基礎,而whiten是許多演算法中重要的預處理步驟。 當你在對圖片進行演算法訓練時,圖 […]

堆排序演算法之初始堆建立總結

堆排序演算法之初始堆建立總結 @(演算法學習) 關於堆的插入和刪除有過一篇思考,但是關於初始堆的構建,沒有總結。 簡單說就下面幾個要點(以大頂堆為例): 首先根據序列構建一個完全二叉樹 在完全二叉樹的基礎上,從最後一個非葉結點開始調整:比較三個元素的大小–自己,它的左孩子,右孩子。分為三種情況: 自 […]

訓練資料常用演算法之Levenberg–Marquardt(LM)

      引入問題        神經網路訓練資料的過程就是不斷調整未知引數使得代價函式達到最小值,通常選擇均值平方差函式MSE,即解決一個如下問題。                  傳統BP演算法更新引數使用的是最快梯度下降法,即沿梯度的反方向,按一定步長大小,進行引數更新,使的評價函式達到極 […]

樹、森林、二叉樹的轉換

樹、森林、二叉樹的轉換 樹變二叉樹 樹變二叉樹的規則:每個結點的左指標指向它的第一個孩子結點。右指標指向它在樹中的相鄰兄弟結點。 也即:左孩子右兄弟。 根沒有兄弟,所以轉換以後的樹沒有右子樹。 具體操作: 在兄弟之間連線 對每一個結點,只保持它與第一個子結點(長子)的連線,與其他子結點的連線全部抹去 […]

三向切分快速排序

#include "util.h" //三向切分快速排序 //核心思想就是將待排序的資料分為三部分,左邊都小於比較值,右邊都 //大於比較值,中間的數和比較值相等. //三向切分快速排序的特性就是遇到和比較值相同時,不進行資料交換, //這樣對於有大量重複資料的排序時,三向切分快速排序演算法就會優於 […]