私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
著者のホームページ: Zhi GuyunがXiuから出てくる
要素を配列に挿入する時間計算量は () です。
A.O(1)
B. O(n)
C. O(log n)
結論 O(n^2)
ヒープ ソートでは、最大のヒープを構築する時間計算量は () です。
A. O(n)
B. O(n log n)
C. O(log n)
結論 O(n^2)
赤黒の木は()の一種です。
A. 完全な二分木
B. バランスの取れた二分木
C. 最小ヒープ
D. 最大ヒープ
ハッシュ テーブルに関する次の記述のうち、間違っているものはどれですか ()。
A. ハッシュ テーブルの検索時間の複雑さは O(1) です。
B. ハッシュ テーブルの挿入時間の複雑さは O(1) です
C. ハッシュ テーブルで競合を解決できる
D. ハッシュ テーブルの検索時間の複雑さは O(1) でなければなりません
グラフトラバーサルでは、深さ優先探索 (DFS) と幅優先探索 (BFS) の時間計算量はそれぞれ () です。
A. O(V + E) と O(V)
B. O(V^2) と O(V)
C. O(V + E) と O(V + E)
D. O(V) と O(V^2)
一方向リンクリストを逆にする時間計算量は () です。
A.O(1)
B. O(n)
C. O(log n)
結論 O(n^2)
二分探索ツリーでは、ノード削除の最悪の場合の時間計算量は () です。
A.O(1)
B. O(n)
C. O(log n)
D. O(n log n)
次の並べ替えアルゴリズムのうち、平均時間計算量が O(n log n)() であるのはどれですか。
A. バブルソート
B. クイックソート
C. 挿入ソート
D. 選択ソート
二分木では、ノードの次数は () です。
A. このノードの子ノードの数
B. ノードの深さ
C. ノードの高さ
D. ノードのレベル
B ツリーと B+ ツリーの主な違いは () です。
A. B ツリーのすべてのノードはデータを保存しますが、B+ ツリーのリーフ ノードのみがデータを保存します。
B. B-ツリーはB+ツリーよりもバランスが取れています
C. B ツリーの挿入および削除操作が簡単になる
D. B+ ツリーの検索効率が低い
連結リストが回文連結リストかどうかを判定する関数を実装してください。
def is_palindrome(head):
# 请在这里编写代码
二分探索木に挿入操作を実装するコードを記述してください。
class TreeNode:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
def insert(root, key):
# 请在这里编写代码
隣接行列で表されるグラフを指定して、幅優先検索 (BFS) を実装します。
def bfs(graph, start):
# 请在这里编写代码
赤黒木の性質:
赤黒の木々がバランスを保つ仕組み:
動的配列とリンクリストの違い:
ハッシュテーブルの原理:
リンク リストが回文リンク リストかどうかを判断します。
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
def is_palindrome(head):
# 使用快慢指针找到链表中点
slow = fast = head
while fast and fast.next:
slow = slow.next
fast = fast.next.next
# 反转后半部分链表
prev = None
while slow:
temp = slow.next
slow.next = prev
prev = slow
slow = temp
# 比较前半部分和后半部分
left, right = head, prev
while right:
if left.val != right.val:
return False
left = left.next
right = right.next
return True
二分探索木での挿入操作:
class TreeNode:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
def insert(root, key):
if root is None:
return TreeNode(key)
if key < root.val:
root.left = insert(root.left, key)
else:
root.right = insert(root.right, key)
return root
幅優先検索 (BFS):
from collections import deque
def bfs(graph, start):
visited = [False] * len(graph)
queue = deque([start])
visited[start] = True
result = []
while queue: