生活随笔
收集整理的這篇文章主要介紹了
【算法】《algorithm-note》算法笔记中文版正式发布!
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
無論是做機器學(xué)習(xí)、深度學(xué)習(xí)、自然語言處理還是其它領(lǐng)域,算法的重要性不言而喻!吃透算法底層原理、掌握算法數(shù)學(xué)推導(dǎo)和代碼實現(xiàn),對提高自己的硬核實力來說非常重要!今天給大家推薦一個超贊的開源算法筆記!中文版!而且在 GitHub 上已經(jīng)收獲了近 1k 的贊了!
首先放上該筆記的 GitHub 地址:
https://github.com/Dairongpeng/algorithm-note
簡介
該開源項目主要內(nèi)容包括:數(shù)組,鏈表,樹,圖,遞歸,DP,有序表等相關(guān)數(shù)據(jù)結(jié)構(gòu)與算法的講解及代碼實現(xiàn)。作者是“左神”,通過算法課筆記記錄,整理一份盡可能還原網(wǎng)課的筆記,還包括代碼的實現(xiàn),可方便讀者當(dāng)成工具書便于查詢。
目錄
該項目總共包含 24 節(jié)內(nèi)容,每一節(jié)內(nèi)容都配備了筆記和代碼實現(xiàn)。
同時,作者提供了 GitHub Page 閱讀頁面,提高了友好交互性:
https://dairongpeng.github.io/algorithm-note/
例如,我們來看第 1 節(jié)的內(nèi)容。
第 1 節(jié)介紹的是時間復(fù)雜度、空間復(fù)雜度、排序、異或運算。主要包括:時間復(fù)雜度、空間復(fù)雜度、常數(shù)項時間復(fù)雜度、算法最優(yōu)解、常見時間復(fù)雜度、算法和數(shù)據(jù)結(jié)構(gòu)脈絡(luò) 、認(rèn)識對數(shù)器、認(rèn)識二分法 、認(rèn)識異或運算。
作者對每個知識點都有簡明扼要的概括和總結(jié)。
除此之外,像排序算法還有相應(yīng)的示例代碼,例如我們最常見的冒泡排序:
package class01;import java.util.Arrays;public class Code02_BubbleSort {public static void bubbleSort(int[] arr) {if (arr == null || arr.length < 2) {return;}// 0 ~ N-1// 0 ~ N-2// 0 ~ N-3for (int e = arr.length - 1; e > 0; e--) { // 0 ~ efor (int i = 0; i < e; i++) {if (arr[i] > arr[i + 1]) {swap(arr, i, i + 1);}}}}// 交換arr的i和j位置上的值public static void swap(int[] arr, int i, int j) {arr[i] = arr[i] ^ arr[j];arr[j] = arr[i] ^ arr[j];arr[i] = arr[i] ^ arr[j];}// for testpublic static void comparator(int[] arr) {Arrays.sort(arr);}// for testpublic static int[] generateRandomArray(int maxSize, int maxValue) {int[] arr = new int[(int) ((maxSize + 1) * Math.random())];for (int i = 0; i < arr.length; i++) {arr[i] = (int) ((maxValue + 1) * Math.random()) - (int) (maxValue * Math.random());}return arr;}// for testpublic static int[] copyArray(int[] arr) {if (arr == null) {return null;}int[] res = new int[arr.length];for (int i = 0; i < arr.length; i++) {res[i] = arr[i];}return res;}// for testpublic static boolean isEqual(int[] arr1, int[] arr2) {if ((arr1 == null && arr2 != null) || (arr1 != null && arr2 == null)) {return false;}if (arr1 == null && arr2 == null) {return true;}if (arr1.length != arr2.length) {return false;}for (int i = 0; i < arr1.length; i++) {if (arr1[i] != arr2[i]) {return false;}}return true;}// for testpublic static void printArray(int[] arr) {if (arr == null) {return;}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();}// for testpublic static void main(String[] args) { int testTime = 500000;int maxSize = 100;int maxValue = 100;boolean succeed = true;for (int i = 0; i < testTime; i++) {int[] arr1 = generateRandomArray(maxSize, maxValue);int[] arr2 = copyArray(arr1);bubbleSort(arr1);comparator(arr2);if (!isEqual(arr1, arr2)) {succeed = false;break;}}System.out.println(succeed ? "Nice!" : "Fucking fucked!");int[] arr = generateRandomArray(maxSize, maxValue);printArray(arr);bubbleSort(arr);printArray(arr);}}
整體的閱讀體驗很不錯!
希望這份《algorithm-note》算法筆記中文版對你有所幫助!最后,再放上該開源項目的 GitHub 地址:
https://github.com/Dairongpeng/algorithm-note
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯
AI基礎(chǔ)下載機器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯溫州大學(xué)《機器學(xué)習(xí)課程》視頻
本站qq群851320808,加入微信群請掃碼:
總結(jié)
以上是生活随笔為你收集整理的【算法】《algorithm-note》算法笔记中文版正式发布!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。