資料結構與演算法練習18

2021-10-04 21:30:19 字數 580 閱讀 5800

首先判斷字串如果長度為0或1就直接返回它的長度。然後用head指向每次子串的首位置,rear指向末位置的下乙個位置,子串的長度就是rear-head。雙層for迴圈,外迴圈 i 遍歷1到s.length,內迴圈 j 判斷當前位置 i 是否等於head到rear間的乙個字元,如果相等,就令head=j+1並跳出內層迴圈,再rear++,並用max=math.max(max,rear-head)記錄下最大的長度。最後返回max。

C 資料結構與演算法揭秘18

這節我們介紹堆排序。堆排序 在直接選擇排序中,順序表是乙個線性結構,要從有n個記錄的順序表中選擇出乙個最小的記錄需要比較n 1 次。如能把待排序的n個記錄構成乙個完全二叉樹結構,則每次選擇出乙個最大 或最小 的記錄比較的次數就是完全二叉樹的高度,即log2n次,則排序演算法的時間複雜度就是o nlo...

C 資料結構與演算法揭秘18

這節我們介紹堆排序。堆排序 在直接選擇排序中,順序表是乙個線性結構,要從有n個記錄的順序表中選擇出乙個最小的記錄需要比較n 1 次。如能把待排序的n個記錄構成乙個完全二叉樹結構,則每次選擇出乙個最大 或最小 的記錄比較的次數就是完全二叉樹的高度,即log2n次,則排序演算法的時間複雜度就是o nlo...

資料結構 練習 18 vector list

vector的用法 vector包括的函式為 寫了一段程式,測試一下幾個常用的函式 cpp include include include include using namespace std int main include include include include using names...