C/C++ Algorithms

Recursion और Call Stack

हर recursive function में base case और उसकी ओर progress चाहिए।

Recursion और Call Stack क्या है?

हर recursive function में base case और उसकी ओर progress चाहिए।

छोटे instance से problem solve करें।

महत्वपूर्ण बातें

  • Empty, single, duplicate और sorted input test करें।
  • Correctness और optimization अलग रखें।
  • Production में standard library को प्राथमिकता दें।

C और C++ code examples

C
कोड चलाएँ →
main.c
#include <stdio.h>

unsigned long long factorial(unsigned number) {
    return number < 2 ? 1 : number * factorial(number - 1);
}

int main(void) {
    printf("%llu\n", factorial(6));
}
अपेक्षित output
720
C++
कोड चलाएँ →
main.cpp
#include <iostream>

constexpr unsigned long long factorial(unsigned number) {
    return number < 2 ? 1 : number * factorial(number - 1);
}

int main() {
    constexpr auto value = factorial(6);
    std::cout << value << '\n';
}
अपेक्षित output
720

C और C++ की तुलना

Factorial O(n) time और O(n) stack लेता है; बड़े inputs validate करके iterative solution सोचें।

C

Loops, pointers, lengths और buffers स्पष्ट लिखे जाते हैं।

C++

Iterators और algorithms operation को storage से अलग करते हैं।

अभ्यास

दोनों versions चलाकर बदलें और language guarantees की तुलना करें।

  • हर comparison trace करें।
  • Duplicates और extreme values test करें।
  • Standard library के विरुद्ध benchmark करें।