31K+ 次瀏覽
資料型別基本上是在不同的計算機程式中可以使用的某種資料型別。它表示諸如整數、浮點數等型別,以及空間,例如整數將佔用4位元組,字元將佔用1位元組的空間等。抽象資料型別是一種特殊的資料型別,其行為由一組值和一組操作定義。“抽象”一詞的使用是因為我們可以使用這些資料型別,可以執行不同的操作。但是,這些操作是如何工作的,對使用者來說是完全隱藏的。ADT 由原始資料型別構成,但操作邏輯是…… 閱讀更多
79K+ 次瀏覽
反射二進位制碼或格雷碼是對二進位制數值系統的一種排序,使得兩個連續的值只在一個位元(二進位制數字)上有所不同。格雷碼在硬體生成的二進位制數的正常序列中非常有用,因為在從一個數轉換到下一個數的過程中可能會導致錯誤或歧義。因此,格雷碼可以很容易地消除這個問題,因為在任意兩個數之間的轉換過程中,只有一個位元改變其值。二進位制數轉換為格雷碼格雷碼用於旋轉和光電編碼器、卡諾圖和錯誤檢測。…… 閱讀更多
407 次瀏覽
斐波那契數是這樣的數,除了前兩個數外,該數列中的每個數都是前兩個數的和。該數列以 1, 1 開頭。例如 - 1, 1, 2, 3, 5, 8, 13, 21, 34, ……我們可以編寫一個程式來生成第 n 個數,如下所示 - function fibNaive(n) { if (n<
2K+ 次瀏覽
動態規劃將問題分解成越來越小的子問題。這些子問題不是獨立解決的。相反,這些較小子問題的結果會被記住並用於類似或重疊的子問題。在我們可以將問題分解成類似的子問題以便重用其結果的情況下,使用動態規劃。通常,這些演算法用於最佳化。在解決手頭的子問題之前,動態演算法會嘗試檢查先前已解決的子問題的結果。子問題的解決方案被組合起來以實現最佳解決方案。對於一個問題…… 閱讀更多
3K+ 次瀏覽
與二分查詢一樣,它也把列表分成子列表。此過程使用兩個中間中間值將列表分成三部分。隨著列表被分成更多子分割槽,因此它減少了搜尋鍵值的時間。三元搜尋技術的複雜性時間複雜度:O(log3 n)空間複雜度:O(1)輸入和輸出輸入:排序後的資料列表:12 25 48 52 67 79 88 93 搜尋鍵 52 輸出:專案在位置找到:3演算法ternarySearch(array, start, end, key)輸入 - 排序後的陣列、起始和結束位置以及搜尋鍵輸出 - 鍵的位置(如果找到),否則錯誤…… 閱讀更多
4K+ 次瀏覽
指數搜尋也稱為倍增或跳躍搜尋。此機制用於查詢可能存在搜尋鍵的範圍。如果 L 和 U 是列表的上限和下限,則 L 和 U 都是 2 的冪。對於最後一節,U 是列表的最後位置。因此,它被稱為指數。找到特定範圍後,它使用二分查詢技術來查詢搜尋鍵的確切位置。指數搜尋技術的複雜性時間複雜度:最佳情況為 O(1)。O(log2 i)…… 閱讀更多