package com.tree; import java.util.ArrayList; import java
問題描述: 已知3個升序整數數組a[l]、b[m]、c[n]。請在3個數組中各找一個元素,使得組成的三元組距離最小。 三元組距離的定義是:假設a[i]、b[j]和c[k]是一個三元組,那麼距離爲Distance=max(|a[i]-b[j
1.冒泡排序 package com.lyc.BubbleSort; /** * 冒泡排序,從小到大排序,時間複雜度爲O(N^2) * 原理:比較相鄰兩個元素,如果前一個元素比後一個元素大,則交換這兩個元素的值 *
1. 樹的簡介 1.1 樹的定義 樹是一種特殊的數據結構,它可以用來描述有分支的結構,是由一個或一個以上的節點所組成的有限集合。 1.2 樹的特點 a. 存在一個特殊的節點,稱爲根節點; b. 沒有父節點的節點稱爲根節點; c. 每一個非
算法概要: 解決(不含負權邊的加權有向圖的)單點最短路徑問題。計算的結果是一棵最短路徑樹(SPT,最短路徑樹)。主要特點是以起始點爲中心向外層層擴展,直到擴展到終點爲止。 維基百科的描述: 這個算法是通過爲每個頂點 v 保留目
二叉查找樹是一種很有意思的數據結構, 比根節點小的元素將被存儲在左子樹中,比根節點大的元素被存儲在右子樹中。這就保證了中序遍歷該二叉查找樹時必然是升序排序的。 平均情況下: 二分查找的時間複雜度爲O(logN)
學編譯原理的詞法分析部分,看到了正則表達式,於是就動手自己實現了一番。 代碼:https://github.com/earayu/Regex.git 正則表達式的解析: 正則表達式->NFA->DFA->模擬DFA運行
1.定義 稀疏數組可以看做是普通二位數組的壓縮,但是這裏說的普通數組是值無效數據量遠大於有效數據量的數組,關於稀疏數組的運用有五子棋盤,地圖等.. *當一個數組中大部分元素爲0,或者爲同一個值的數組時,可以使用稀疏數組來保存該數組如圖
在面試過程中,筆試環節經常要求手寫一種或者幾種排序算法。如果你還不會寫,可能就要被其他的同學給刷下去啦。希望這篇文章能幫到你。 本文實現了三種基本的排序算法:冒泡排序,插入排序,選擇排序。並簡單的闡述了各自的排序流程以及時間複雜度。 注: