原创 18、快速排序

先分享個視頻教學網址,講的很nice! https://www.bilibili.com/video/BV1it41167v2?from=search&seid=7944545082422790984 概念 快速排序的基本思想:通過一趟

原创 17、希爾排序

問題提出: 當待排序的列表整體呈逆序時(最小的元素在後面),用直接插入排序,會極大的浪費時間,故提出希爾排序(ShellSort) 思想 首先將數組分成len/2組,即增量gap = len/2,然後對每一組進行直接插入排序;然後繼

原创 14、冒泡排序

思路: 冒泡排序屬於比較排序算法,通過每次和相鄰的元素進行比較,將逆序的元素交換位置,最終將最大的元素排在表尾 時間複雜度O(n^2) 最好:O(n);最差:O(n^2);穩定的算法;內排序 代碼 package Sort; i

原创 16、直接插入排序算法

思路: 1、假設前n個已經有序,每次循環都是將無序表中的一個元素插入到有序表中去。 8萬條數據測試代碼: package Sort; import java.text.SimpleDateFormat; import java.ut

原创 11、迷宮問題

思路: 1、先用二維數組模仿迷宮,並用數字代表牆,0:表示未走過;1:代表牆,表示不能走;2:表示走過,能走;3:表示走過,走不通 2、指定走出迷宮策略:按照下、右、上、左的順序走迷宮 代碼實現: package resursion;

原创 12、八皇后問題

思路: 1、先將第一個皇后放在第一行第一列 2、將第二個皇后放在第二行第一列,看否衝突,若衝突,則依次放在第二列、第三列...遍歷完後找到不衝突的位置 3、繼續第三個皇后,直到所有皇后都找到合適的位置。 4、當得到一個正確解後,在回退到

原创 8、逆波蘭表達式(後綴表達式)

1 中綴表達式轉後綴表達式(從左到右) 方法一:直接轉換法 (1)首先確定表達式表達式A的運算順序,然後加括號:((1 + (( 2 + 3)* 4 )) – 5 ) (2)從最裏面的一層括號開始運算,轉換成後綴表達式的方法爲:(忽略

原创 15、簡單選擇排序

思路: 1、給一個數組{9,4,7,2,0,1,-1,5,-6},長度爲n 2、共進行n-1次遍歷 3、第一次遍歷時,先從n個數據中取出最小的數據,和index = 0的數據進行交換。 3、第二次遍歷時,先從n-1個數據中取出最小的數據

原创 7、棧應用:加減乘數計算器

思路: 1 首先分爲兩個棧:數棧和操作符棧(簡稱符棧) 2 定義index變量,用於遍歷字符串“6+1*2” 3 如果當前遍歷的字符是數字,直接入數棧 4 如果當前遍歷的字符是操作符,分爲兩種情況: 4.1 如果符棧爲空,直接將

原创 單向環裝鏈表操作以及約瑟夫問題求解

1. 節點構建 //構建節點 class Item{ private int no; private Item next; public Item(int no) { this.no = no; } public in

原创 單鏈表面試題(百度、騰訊...)

目錄   學習了單鏈表的應用(面試題) 1. 求單鏈表的有效節點 - 思路: - 代碼: 2. 查找單鏈表倒數第K個節點(新浪面試題) - 思路 - 代碼: - 備註: 3. 單鏈表的翻轉(騰訊面試題) - 思路: - 代碼: - 備註:

原创 鏈表的一系列操作(內附源碼,學習網站)

學習了鏈表的一系列操作 1. 鏈表的結構 data域 next域(指向下個節點) 2. 鏈表的操作 2.1. 鏈表的創建 構建節點信息 class HeroNode{ //data域 private int no; privat

原创 頭條面試題(2-萬萬沒想到之聰明的編輯)

問題來源: 我叫王大錘,是一家出版社的編輯。 我負責校對投稿來的英文稿件,這份工作非常煩人,因爲每天都要去修正無數的拼寫錯誤。 但是,優秀的人總能在平凡的工作中發現真理。 我發現了一個發現拼寫錯誤的捷徑: 1.三個同樣的字母連在一起,一定

原创 徹底理解0-1揹包問題

0-1揹包問題概念 揹包問題本質是個求最優解的問題:有個揹包有V大小的空間可以存放物品,現在有n個物品,每個物品體積分別爲v1、v2...、vn,價值分別爲w1、w2...、wn。現在求解:如何使物品儘可能多的放在揹包中,使得揹包中的物品

原创 向量與矩陣的範數(比較1-範數、2-範數、無窮範數、p-範數、L0範數 和 L1範數等)

原文鏈接:https://blog.csdn.net/zaishuiyifangxym/article/details/81673491 閱讀文獻時,經常看到各種範數,機器學習中的稀疏