<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Krishna</title>
    <description>The latest articles on DEV Community by Krishna (@krishna_kriss).</description>
    <link>https://dev.to/krishna_kriss</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F903972%2F5f7a4065-9de2-456e-ae96-8ccc8e1f8a5f.JPG</url>
      <title>DEV Community: Krishna</title>
      <link>https://dev.to/krishna_kriss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/krishna_kriss"/>
    <language>en</language>
    <item>
      <title>Understanding Time Complexities &amp; Space Complexity</title>
      <dc:creator>Krishna</dc:creator>
      <pubDate>Tue, 11 Feb 2025 16:31:04 +0000</pubDate>
      <link>https://dev.to/krishna_kriss/understanding-time-complexities-space-complexity-51p1</link>
      <guid>https://dev.to/krishna_kriss/understanding-time-complexities-space-complexity-51p1</guid>
      <description>&lt;p&gt;`&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Understanding Time Complexities (Step by Step with Real-Life Stories &amp;amp; Simple Code)&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Time complexity measures &lt;strong&gt;how long an algorithm takes&lt;/strong&gt; based on input size &lt;strong&gt;n&lt;/strong&gt;. Let's break it down &lt;strong&gt;super simply&lt;/strong&gt; with &lt;strong&gt;stories, animations, and Python code!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;📌 1. O(1) - Constant Time (Super Fast)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🔹 Real-Life Example:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Imagine you have a &lt;strong&gt;locker&lt;/strong&gt; with a &lt;strong&gt;fixed number&lt;/strong&gt; on it.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You open the locker in &lt;strong&gt;one step&lt;/strong&gt;, no matter how many lockers exist.
&lt;/li&gt;
&lt;li&gt;Even if there are &lt;strong&gt;1,000,000 lockers&lt;/strong&gt;, you &lt;strong&gt;still&lt;/strong&gt; open it in &lt;strong&gt;one step&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⏳ &lt;strong&gt;Time Complexity:&lt;/strong&gt; &lt;strong&gt;O(1) → Always takes the same time.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Simple Python Code:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
def get_first_element(arr):&lt;br&gt;
    return arr[0]  # Always takes 1 step&lt;/p&gt;

&lt;p&gt;arr = [10, 20, 30, 40]&lt;br&gt;
print(get_first_element(arr))  # Output: 10&lt;br&gt;
`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Best Case:&lt;/strong&gt; Super fast! 🚀&lt;br&gt;&lt;br&gt;
❌ &lt;strong&gt;Downside:&lt;/strong&gt; Only works for &lt;strong&gt;instant lookups&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;📌 2. O(n) - Linear Time (Step-by-Step Process)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🔹 Real-Life Example:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Imagine you are &lt;strong&gt;searching for a book&lt;/strong&gt; in a shelf with &lt;strong&gt;1000 books&lt;/strong&gt;.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You &lt;strong&gt;check each book one by one&lt;/strong&gt; until you find the right one.
&lt;/li&gt;
&lt;li&gt;Worst case, you check &lt;strong&gt;all 1000 books&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⏳ &lt;strong&gt;Time Complexity:&lt;/strong&gt; &lt;strong&gt;O(n) → More items = More time.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Simple Python Code:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
def find_element(arr, target):&lt;br&gt;
    for num in arr:&lt;br&gt;
        if num == target:&lt;br&gt;
            return "Found!"&lt;br&gt;
    return "Not Found"&lt;/p&gt;

&lt;p&gt;arr = [10, 20, 30, 40, 50]&lt;br&gt;
print(find_element(arr, 30))  # Output: Found!&lt;br&gt;
`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Good for small lists.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
❌ &lt;strong&gt;Bad for big data.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;📌 3. O(log n) - Logarithmic Time (Divide and Conquer)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🔹 Real-Life Example:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Imagine you are &lt;strong&gt;guessing a number between 1 and 1000&lt;/strong&gt;.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instead of guessing randomly, you always &lt;strong&gt;divide by 2&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;If the number is &lt;strong&gt;greater&lt;/strong&gt;, check the &lt;strong&gt;upper half&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;If the number is &lt;strong&gt;smaller&lt;/strong&gt;, check the &lt;strong&gt;lower half&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 &lt;strong&gt;Steps:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1000 → 500 → 250 → 125 → 62 → 31 → 15 → 7 → 3 → &lt;strong&gt;Found!&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of checking &lt;strong&gt;1000 numbers&lt;/strong&gt;, we only check &lt;strong&gt;log₂(1000) ≈ 10 steps&lt;/strong&gt;!  &lt;/p&gt;

&lt;p&gt;⏳ &lt;strong&gt;Time Complexity:&lt;/strong&gt; &lt;strong&gt;O(log n) → Each step reduces the work by half.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Simple Python Code:&lt;/strong&gt;&lt;br&gt;
`&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left &amp;lt;= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return "Found!"
        elif arr[mid] &amp;lt; target:
            left = mid + 1
        else:
            right = mid - 1
    return "Not Found"

arr = [10, 20, 30, 40, 50, 60, 70]
print(binary_search(arr, 40))  # Output: Found!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ &lt;strong&gt;Super fast!&lt;/strong&gt; 🚀&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Used in Binary Search, Tree Searches.&lt;/strong&gt;  &lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;📌 4. O(n²) - Quadratic Time (Very Slow)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🔹 Real-Life Example:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Imagine you are &lt;strong&gt;pairing up students&lt;/strong&gt; for a competition.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each student shakes hands with &lt;strong&gt;every other student&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;If there are &lt;strong&gt;100 students&lt;/strong&gt;, each does &lt;strong&gt;100 handshakes&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⏳ &lt;strong&gt;Time Complexity:&lt;/strong&gt; &lt;strong&gt;O(n²) → More items = MUCH slower.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Simple Python Code (Bubble Sort):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;bubble_sort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
                &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;  &lt;span class="c1"&gt;# Swap elements
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;bubble_sort&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;  &lt;span class="c1"&gt;# Output: [1, 2, 5, 9]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;❌ &lt;strong&gt;Slow for large data.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Only used for simple cases.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;📌 5. O(n log n) - Fast Sorting (Efficient)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🔹 Real-Life Example:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Imagine you are sorting &lt;strong&gt;1000 books&lt;/strong&gt;.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instead of sorting &lt;strong&gt;one by one (O(n²))&lt;/strong&gt;,
&lt;/li&gt;
&lt;li&gt;You &lt;strong&gt;split them in halves&lt;/strong&gt;, sort them, and then &lt;strong&gt;merge them back&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 &lt;strong&gt;Steps (Merge Sort):&lt;/strong&gt;  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Split books into &lt;strong&gt;small groups&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Sort each group separately.
&lt;/li&gt;
&lt;li&gt;Merge them together in sorted order.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;⏳ &lt;strong&gt;Time Complexity:&lt;/strong&gt; &lt;strong&gt;O(n log n) → Faster than O(n²)!&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Simple Python Code (Merge Sort):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;merge_sort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;

    &lt;span class="n"&gt;mid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="n"&gt;left&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;merge_sort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="n"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="n"&gt;right&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;merge_sort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;:])&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;merge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;merge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;sorted_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
            &lt;span class="n"&gt;sorted_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
            &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;sorted_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
            &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

    &lt;span class="n"&gt;sorted_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;:])&lt;/span&gt;
    &lt;span class="n"&gt;sorted_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;:])&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;sorted_list&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;merge_sort&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;  &lt;span class="c1"&gt;# Output: [1, 2, 5, 9]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ &lt;strong&gt;Used in Merge Sort &amp;amp; Quick Sort.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Best choice for large data sorting.&lt;/strong&gt;  &lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;📌 6. O(2ⁿ) - Exponential Time (VERY SLOW)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🔹 Real-Life Example:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Imagine you have &lt;strong&gt;n light switches&lt;/strong&gt;, and you need to &lt;strong&gt;try all possible ON/OFF combinations&lt;/strong&gt;.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If &lt;strong&gt;n = 2&lt;/strong&gt;, possibilities = &lt;strong&gt;2² = 4&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;If &lt;strong&gt;n = 10&lt;/strong&gt;, possibilities = &lt;strong&gt;2¹⁰ = 1024&lt;/strong&gt;!
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⏳ &lt;strong&gt;Time Complexity:&lt;/strong&gt; &lt;strong&gt;O(2ⁿ) → Doubles for every extra input.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Simple Python Code (Fibonacci - Exponential Time):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nf"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;fibonacci&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# Output: 5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;❌ &lt;strong&gt;Not practical for large numbers!&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Used in Recursive Problems like Subset Generation.&lt;/strong&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;🚀 Final Summary Table&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Time Complexity&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Good/Bad?&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O(1)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Accessing an array index&lt;/td&gt;
&lt;td&gt;✅ Super fast!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O(n)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Linear Search&lt;/td&gt;
&lt;td&gt;⚠️ Slow for big data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O(log n)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Binary Search&lt;/td&gt;
&lt;td&gt;✅ Super efficient!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O(n²)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bubble Sort&lt;/td&gt;
&lt;td&gt;❌ Very slow!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O(n log n)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Merge Sort&lt;/td&gt;
&lt;td&gt;✅ Best for sorting large data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O(2ⁿ)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Recursive Fibonacci&lt;/td&gt;
&lt;td&gt;❌ Exponentially slow!&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;🎯 Key Takeaways&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;O(1) is the fastest, O(2ⁿ) is the slowest.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Sorting should be done using O(n log n) methods.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Binary Search (O(log n)) is great for searching.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Recursive solutions can be inefficient if not optimized.&lt;/strong&gt;  &lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;📌 Space Complexity – Super Simple Explanation with Story &amp;amp; Code&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;When we talk about &lt;strong&gt;time complexity&lt;/strong&gt;, we measure &lt;strong&gt;how fast&lt;/strong&gt; an algorithm runs.  &lt;/p&gt;

&lt;p&gt;When we talk about &lt;strong&gt;space complexity&lt;/strong&gt;, we measure &lt;strong&gt;how much extra memory&lt;/strong&gt; an algorithm uses.  &lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;💡 Real-Life Story: Space Complexity in a School Exam 📖&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Imagine you are in an &lt;strong&gt;exam hall&lt;/strong&gt; 🏫.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have &lt;strong&gt;one answer sheet&lt;/strong&gt; 📄 and must write all answers on it.
&lt;/li&gt;
&lt;li&gt;You don’t need extra sheets.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Space used = O(1) (constant space).&lt;/strong&gt; ✅
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now imagine another student:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;He writes &lt;strong&gt;each answer on a separate sheet&lt;/strong&gt; and keeps using more paper.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Space used = O(n) (grows with number of answers).&lt;/strong&gt; ❌
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 &lt;strong&gt;Moral:&lt;/strong&gt; Some algorithms use extra memory (like extra paper), while others reuse memory efficiently.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;📌 Types of Space Complexity&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;1️⃣ &lt;strong&gt;O(1) – Constant Space (Uses fixed memory) ✅&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
2️⃣ &lt;strong&gt;O(n) – Linear Space (Memory grows with input size) ❌&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
3️⃣ &lt;strong&gt;O(n²) – Quadratic Space (Even more memory used) 🚨&lt;/strong&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;🔹 O(1) – Constant Space Complexity&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;💡 &lt;strong&gt;What it means:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The algorithm uses a &lt;strong&gt;fixed amount&lt;/strong&gt; of memory, no matter how big the input is.
&lt;/li&gt;
&lt;li&gt;It &lt;strong&gt;doesn’t use extra space&lt;/strong&gt; apart from a few variables.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;📖 Real-Life Example:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Imagine you are &lt;strong&gt;checking if a number is even or odd&lt;/strong&gt;.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You only need &lt;strong&gt;one variable&lt;/strong&gt; to store the number.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;💻 Python Code (O(1) Space)&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;is_even&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;  &lt;span class="c1"&gt;# Uses only one variable (num)
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;is_even&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# ✅ Output: True
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;is_even&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;   &lt;span class="c1"&gt;# ✅ Output: False
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ &lt;strong&gt;No extra memory is used!&lt;/strong&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;🔹 O(n) – Linear Space Complexity&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;💡 &lt;strong&gt;What it means:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The algorithm uses &lt;strong&gt;extra memory that grows&lt;/strong&gt; with the input size.
&lt;/li&gt;
&lt;li&gt;If the input is &lt;strong&gt;n elements&lt;/strong&gt;, we may need &lt;strong&gt;n extra memory slots&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;📖 Real-Life Example:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Imagine you are &lt;strong&gt;copying a list of student names&lt;/strong&gt;.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If there are &lt;strong&gt;100 students&lt;/strong&gt;, you store &lt;strong&gt;100 names&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;If there are &lt;strong&gt;1,000 students&lt;/strong&gt;, you store &lt;strong&gt;1,000 names&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;💻 Python Code (O(n) Space)&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;copy_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;new_arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[:]&lt;/span&gt;  &lt;span class="c1"&gt;# Creates a new list (extra space)
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;new_arr&lt;/span&gt;

&lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Alice&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bob&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Charlie&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;copy_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;students&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# ✅ Output: ["Alice", "Bob", "Charlie"]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;❌ &lt;strong&gt;Extra memory is used to store the copied list.&lt;/strong&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;🔹 O(n²) – Quadratic Space Complexity&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;💡 &lt;strong&gt;What it means:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The algorithm uses &lt;strong&gt;extra memory that grows even faster&lt;/strong&gt; (like a table storing comparisons).
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;📖 Real-Life Example:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Imagine you are &lt;strong&gt;storing distances between all students&lt;/strong&gt; in a class of &lt;strong&gt;n students&lt;/strong&gt;.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You create an &lt;strong&gt;n × n table&lt;/strong&gt; to store the distances.
&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;10 students → 100 slots needed.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;💻 Python Code (O(n²) Space)&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_distance_table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;  &lt;span class="c1"&gt;# Creates an n × n table
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;create_distance_table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  
&lt;span class="c1"&gt;# ✅ Output:
# [[0, 0, 0],
#  [0, 0, 0],
#  [0, 0, 0]]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;❌ &lt;strong&gt;Memory usage grows very fast!&lt;/strong&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;📌 Space Complexity Summary&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Complexity&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Memory Used&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Good or Bad?&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O(1)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Checking even/odd, swapping numbers&lt;/td&gt;
&lt;td&gt;Fixed memory&lt;/td&gt;
&lt;td&gt;✅ Best&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O(n)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Copying an array, storing student names&lt;/td&gt;
&lt;td&gt;Grows with input&lt;/td&gt;
&lt;td&gt;❌ Avoid if possible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O(n²)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Distance table, storing all pairs&lt;/td&gt;
&lt;td&gt;Grows very fast&lt;/td&gt;
&lt;td&gt;🚨 Worst&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;`&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Methods as props reactjs</title>
      <dc:creator>Krishna</dc:creator>
      <pubDate>Thu, 25 Aug 2022 06:30:00 +0000</pubDate>
      <link>https://dev.to/krishna_kriss/methods-as-props-reactjs-2908</link>
      <guid>https://dev.to/krishna_kriss/methods-as-props-reactjs-2908</guid>
      <description>&lt;p&gt;we have seen how a parent component can pass down Props to its children components. Any data in the parent component when passed as Props is available in the children components. Now, what if a child component wanted to communicate with the parent component? BINGO, we still use props. But this time we pass in a reference to a method as Props to the child component&lt;/p&gt;

&lt;p&gt;To do this let’s make a new component named &lt;strong&gt;Parent.js&lt;/strong&gt; . Now let’s make the basic layout for a class component and add a constructor in this file ,Within the constructor we set a state called Parent name with the value 'I am Parent 🤟',along that define a method inviteParent which simply alerts hello by the Parent name which is set in the state so hello ,since we are using this keyword in the method, we need to bind this method&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export class Parent extends Component {
   constructor(props) {
     super(props)

     this.state = {
        first:'I am Parent'
     }
    this.inviteParent =this.inviteParent.bind(this)
   }

 inviteParent(child){
         alert(`HELLO ${this.state.first} `)
   }
  render() {
    return (
      &amp;lt;div&amp;gt;Parent &amp;lt;/div&amp;gt;
    )
  }
}

export default Parent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next we will create another file called &lt;strong&gt;child.js&lt;/strong&gt; as a functional component and include the child component in the render method in parent component&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export class Parent extends Component {
   constructor(props) {
     super(props)

     this.state = {
        first:'I am Parent'
     }
    this.inviteParent =this.inviteParent.bind(this)
   }

 inviteParent(){
         alert(`HELLO ${this.state.first} `)
   }
  render() {
    return (
      &amp;lt;div&amp;gt;
   &amp;lt;ChildComponent/&amp;gt;
    &amp;lt;/div&amp;gt;
    )
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;want to execute the method defined in the Parent component. Basically, a child component calls a Parent components method and as I mentioned already, this is achieved using Props.In Parent component we add an attribute to the child component ,call the attribute inviteHandler&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  render() {
    return (
      &amp;lt;div&amp;gt;
   &amp;lt;ChildComponent  inviteHandler={this.inviteParent}/&amp;gt;
    &amp;lt;/div&amp;gt;
    )
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now in the child component, on click of this button we simply call Props inviteHandler&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
function ChildComponent(props) {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;button onClick={props.inviteHandler}&amp;gt; CHILD&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
  )
} 
export default ChildComponent

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Going  to the browser. Click on the button. And you can see the alert hello, parent. So we have successfully called a method in the parent component from a button in the child component by passing the method as props to the child component&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conculsion 🤙&lt;/strong&gt;&lt;br&gt;
So this is pretty much how you pass methods as props in react components. In the parent component, define the method on the child component tag pass the method as a prop in the child component, access the method using the props object. &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>react</category>
    </item>
  </channel>
</rss>
