الوحدة 4 · CS353

🎯 أهداف التعلم

Decrease-and-Conquer Technique تقنية التقليل والقهر Problem (x) المشكلة Subproblem (x') مشكلة فرعية Sub-Solution حل فرعي Solution الحل النهائي Step 1: Decrease الخطوة 1: تقليل Step 2: Conquer الخطوة 2: قهر (حل) Step 3: Combine الخطوة 3: دمج Base Case حالة الأساس
$$C_{worst}(n) = \sum_{i=1}^{n-1} i = \frac{(n-1)n}{2} \in O(n^2)$$
Pseudocode
ALGORITHM InsertionSort(A[0..n-1])
for i <- 1 to n - 1 do
    v <- A[i]
    j <- i - 1
    while j >= 0 and A[j] > v do
        A[j + 1] <- A[j]
        j <- j - 1
    A[j + 1] <- v
Pseudocode
Algorithm Topological sort
Mark each vertex in V as unvisited
Find indegree[v] for each vertex v in V
for each vertex v in V do
    if indegree[v] = 0 then
        Q.Enqueue(v)
        Mark v as visited
while Q is not empty do
    u <- Q.Dequeue()
    T.AddLast(u)
    for each vertex w in V adjacent to u do
        if w is unvisited then
            indegree[w] <- indegree[w] - 1
            if indegree[w] = 0 then
                Q.Enqueue(w)
                Mark w as visited
return T
🗺️ Topological Sorting
🗺️ Types of Edges in a DFS Forest
$$\gcd(m, n) = \gcd(n, m \bmod n)$$
$$C_{worst}(n) = (n-1) + (n-2) + \dots + 1 = \frac{(n-1)n}{2} \in O(n^2)$$
Pseudocode
ALGORITHM Quickselect(A[l..r], k)
s <- LomutoPartition(A[l..r])
if s = k - 1 return A[s]
else if s > l + k - 1 Quickselect(A[l..s - 1], k)
else Quickselect(A[s + 1..r], k - 1 - s)
🗺️ The Selection Problem and Quick Select
Decrease by a constant Decrease by a constant factor Variable-size decrease
🎓

حديث البروفيسور

❓ اسأل البروفيسور

البطاقات التعليمية

اختبر نفسك

1 / 10 🎯 نتيجتك: 0

🔐 خزنة الامتحان

⚠️ فخ / Trap
🤫 سر / Secret
🔑 مفهوم أساسي / Key Concept
⚠️ فخ / Trap
🔑 مفهوم أساسي / Key Concept