Day 40 of my #100DaysOfCode challenge 🚀 Today I implemented the Merge Sort algorithm in Python. Merge Sort is a powerful divide-and-conquer algorithm that divides the list into smaller parts, sorts them, and then merges them back together. What the program does: • Takes an unsorted list as input • Recursively divides the list into halves • Sorts each half separately • Merges the sorted halves into a final sorted list How the logic works: • If the list has 1 or 0 elements, it is already sorted (base case) • The list is divided into two halves using the middle index • Each half is recursively sorted using merge_sort() • A helper function merge() combines the two sorted halves • Elements are compared and merged in sorted order • Remaining elements are appended after comparison Example: Input: [38, 27, 43, 3, 9, 82, 10] Output: [3, 9, 10, 27, 38, 43, 82] Why Merge Sort is powerful: – Time Complexity: O(n log n) – Efficient for large datasets – Stable sorting algorithm – Widely used in real-world applications Key learnings from Day 40: – Understanding divide-and-conquer strategy – Writing recursive functions – Merging sorted arrays efficiently – Moving towards advanced DSA concepts #100DaysOfCode #Day40 #Python #PythonProgramming #MergeSort #SortingAlgorithms #DataStructures #Algorithms #DivideAndConquer #ProblemSolving #CodingPractice #InterviewPrep #BTech #CSE #AIandML #VITBhopal #TechJourney
Implementing Merge Sort Algorithm in Python
More Relevant Posts
-
Day 41 of my #100DaysOfCode challenge 🚀 Today I implemented the Quick Sort algorithm in Python. Quick Sort is one of the most efficient and widely used sorting algorithms based on the divide-and-conquer approach. What the program does: • Takes an unsorted list as input • Selects a pivot element • Divides the list into three parts – Elements smaller than pivot – Elements equal to pivot – Elements greater than pivot • Recursively sorts the left and right parts • Combines everything into a sorted list How the logic works: • If the list has 1 or 0 elements, it is already sorted • A pivot element is selected (middle element in this case) • The list is divided into three parts: – left → elements less than pivot – middle → elements equal to pivot – right → elements greater than pivot • Recursively apply Quick Sort on left and right • Combine results: sorted = left + middle + right Example: Input: [3, 6, 8, 10, 1, 2, 1] Output: [1, 1, 2, 3, 6, 8, 10] Why Quick Sort is powerful: – Average Time Complexity: O(n log n) – Faster in practice than many sorting algorithms – Widely used in real-world applications Key learnings from Day 41: – Understanding pivot-based partitioning – Applying divide-and-conquer strategy – Writing recursive logic efficiently – Strengthening advanced DSA concepts #100DaysOfCode #Day41 #Python #PythonProgramming #QuickSort #SortingAlgorithms #DataStructures #Algorithms #DivideAndConquer #ProblemSolving #CodingPractice #InterviewPrep #LearnByDoing #DeveloperGrowth #BTech #CSE #AIandML #VITBhopal #TechJourney
To view or add a comment, sign in
-
-
Day 42 of my #100DaysOfCode challenge 🚀 Today I worked on a Python program to find the K-th largest element in an array. This is a common problem in coding interviews and helps build understanding of sorting and indexing. What the program does: • Takes an array and a value k as input • Sorts the array in descending order • Returns the k-th largest element • Handles duplicate values correctly How the logic works: • The array is sorted in descending order using sorted() • Since Python uses 0-based indexing,the k-th largest element is at index k-1 • The element at index k-1 is returned as the result Example: Input: Array: [3, 2, 1, 5, 6, 4] k = 2 Output: 5 (2nd largest element) Another example: Input: Array: [3, 2, 3, 1, 2, 4, 5, 5, 6] k = 4 Output: 4 Why this approach works: – Simple and easy to implement – Uses built-in sorting for reliability – Time Complexity: O(n log n) Key learnings from Day 42: – Understanding sorting in descending order – Working with indexing (k-1) – Solving common interview problems – Handling duplicates in arrays #100DaysOfCode #Day42 #Python #PythonProgramming #Arrays #Sorting #Algorithms #DataStructures #ProblemSolving #CodingPractice #InterviewPrep #LearnByDoing #ProgrammingJourney #DeveloperGrowth #BTech #CSE #AIandML #VITBhopal #TechJourney
To view or add a comment, sign in
-
-
🚀 Solved: Group Anagrams Problem (LeetCode) Today I worked on an interesting problem — grouping anagrams efficiently using Python. 💡 Approach: I used a hashmap (dictionary) where: The key is the sorted version of each word The value is a list of words (anagrams) matching that key Example: "eat", "tea", and "ate" → all become "aet" after sorting → grouped together 🧠 Key Insight: Sorting each string gives a unique identifier for all its anagrams. ⚙️ Time Complexity: Sorting each word takes O(k log k) For n words → O(n * k log k) 📦 Space Complexity: O(n * k) for storing grouped anagrams ✅ Result: Accepted ✔️ Runtime: 5 ms (faster than ~99% submissions) 📈 Growth & Consistency: Improving step by step by solving problems daily and focusing on writing clean and optimized code. Small consistent efforts are helping me build stronger problem-solving skills and deeper understanding of DSA. 🔁 Staying consistent is the real game changer! #Python #DSA #LeetCode #Coding #ProblemSolving #Consistency #Growth #LearningJourney
To view or add a comment, sign in
-
-
Today's topic: recursion. A function that calls itself. Sounds simple, right? Here are two ways to add up a list of numbers: Without recursion — honest, reliable, easy to follow: python def suma(lista): suma = 0 for i in range(0, len(lista)): suma = suma + lista[i] return suma print(suma([6,3,4,2,10])) # 25 With recursion — elegant, almost poetic... and a little terrifying: python def suma(lista): if len(lista) == 1: return lista[0] else: return lista[0] + suma(lista[1:]) print(suma([6,3,4,2,10])) # 25 Same result. Two completely different roads to get there. The recursive version looks more "pro" — but if you forget to define when it stops, the function calls itself forever. Literally. Forever. 💀 So yes, it's getting challenging. And yes, recursion feels more elegant to write. But I'm not ready to fully trust something that could loop into oblivion if I blink wrong. Lesson of the day: simple is not the same as bad. And documenting the moments that confuse you? That's part of learning too. #Python #LearningToCode #DaysOfCode #PythonProgramming #CodingJourney #Recursion #BeginnerCoder #TechLearning #CodeNewbie #LinkedInLearning
To view or add a comment, sign in
-
-
Most Python workflows rely on heuristics. They’re quick, intuitive, but usually not optimal. A simple greedy approach might get you a solution, but it often leaves efficiency, performance, and cost savings on the table. GAMSPy brings algebraic modeling into Python, so you can express constraints and objectives directly and solve for a true optimum. At PyConDE & PyData 2026, Justine Broihan and Muhammet Soyturk will walk through this using a classic operations example, and then extend it into machine learning. They'll cover: 🔸 How optimization compares to rule-based heuristics and 🔸 How it can be used to test ML models (e.g. minimal changes needed to trigger misclassification) 🔸 The Art of the Optimal: A Pythonic Approach to Complex Decision-Making 📍 April 14 · 16:30 📍 Platinum (2nd Floor) If you're building decision-making systems in Python, this is worth a look. More details 👉 https://lnkd.in/dyifGdVi #PyConDE #PyData #Optimization #GAMSPy #GAMS #Python
To view or add a comment, sign in
-
-
🚀 Mastering Recursion with Gray Code Generation I recently worked on an interesting problem—generating Gray Codes using recursion in Python. This problem is a great example of how powerful and elegant recursive thinking can be. 🔹 What is Gray Code? Gray Code is a binary sequence where two consecutive values differ in only one bit. It has applications in digital systems, error correction, and algorithms. 🔹 Approach Used: Instead of generating all binary numbers and converting them, I used a recursive pattern: Base case: For n = 1 → ["0", "1"] Recursively get Gray codes for n-1 Prefix "0" to the original list Prefix "1" to the reversed list Combine both 🔹 Python Implementation: class Solution: def graycode(self,n): if n ==1: return ["0","1"] prev_gray = self.graycode(n - 1) result = [] for code in prev_gray: result.append("0" + code) for code in reversed(prev_gray): result.append("1" + code) return result 💡 Key Learning: Sometimes the best solutions don’t require complex logic—just recognizing patterns and applying recursion smartly. 📈 This problem strengthened my understanding of: Recursion Pattern building Problem decomposition Would love to hear how others approached this problem or optimized it further! 😊 #Python #Recursion #Algorithms #CodingJourney #DataStructures #ProblemSolving
To view or add a comment, sign in
-
Today’s Python breakthrough: Rethinking the Fibonacci sequence. I started with a Recursive (Top-Down) approach—it looks clean but recalculates the same values repeatedly. It's fine for small numbers, but a nightmare for scaling. I moved to Tabulation (Bottom-Up). By using a list to store results as I go: ✅ Time complexity dropped from O(2 n) to O(n). ✅ No more redundant calculations. ✅ The code actually scales. As an economist moving into Data Science, these efficiency wins are what I love most. It’s not just about getting the right answer; it’s about the most effective way to get there. Check out the clean code here: https://lnkd.in/dgw_sRVM #Python #DataScience #BuildInPublic #DynamicProgramming #WomenInTech
To view or add a comment, sign in
-
🚀 ✨ 𝐃𝐀𝐘 12: 𝐔𝐍𝐃𝐄𝐑𝐒𝐓𝐀𝐍𝐃𝐈𝐍𝐆 𝐒𝐄𝐓𝐒 ✨ Today, I explored another important data structure in Python — 💻 𝐒𝐞𝐭𝐬. 🔹 📘 𝐖𝐡𝐚𝐭 𝐀𝐫𝐞 𝐒𝐞𝐭𝐬? Sets are 𝐮𝐧𝐨𝐫𝐝𝐞𝐫𝐞𝐝 collections of unique elements, meaning they automatically remove duplicates. 🔹 ⚙️ 𝐖𝐡𝐚𝐭 𝐈 𝐋𝐞𝐚𝐫𝐧𝐞𝐝 ✔️ Creating and using 𝐬𝐞𝐭𝐬 ✔️ Performing operations like 𝐮𝐧𝐢𝐨𝐧, 𝐢𝐧𝐭𝐞𝐫𝐬𝐞𝐜𝐭𝐢𝐨𝐧, 𝐝𝐢𝐟𝐟𝐞𝐫𝐞𝐧𝐜𝐞 ✔️ Understanding how sets handle 𝐮𝐧𝐢𝐪𝐮𝐞 𝐯𝐚𝐥𝐮𝐞𝐬 🔹 🧠 𝐖𝐡𝐲 𝐈𝐭 𝐌𝐚𝐭𝐭𝐞𝐫𝐬 Sets are very useful for 𝐫𝐞𝐦𝐨𝐯𝐢𝐧𝐠 𝐝𝐮𝐩𝐥𝐢𝐜𝐚𝐭𝐞𝐬 and performing fast mathematical operations. 💡 𝐔𝐧𝐢𝐪𝐮𝐞 𝐝𝐚𝐭𝐚 = 𝐂𝐥𝐞𝐚𝐧 𝐚𝐧𝐝 𝐞𝐟𝐟𝐢𝐜𝐢𝐞𝐧𝐭 𝐜𝐨𝐝𝐞! 💪 𝐂𝐨𝐧𝐭𝐢𝐧𝐮𝐢𝐧𝐠 𝐭𝐨 𝐛𝐮𝐢𝐥𝐝 𝐚 𝐬𝐭𝐫𝐨𝐧𝐠 𝐟𝐨𝐮𝐧𝐝𝐚𝐭𝐢𝐨𝐧! 🚀 𝐎𝐧𝐞 𝐬𝐭𝐞𝐩 𝐜𝐥𝐨𝐬𝐞𝐫 𝐭𝐨 𝐛𝐞𝐜𝐨𝐦𝐢𝐧𝐠 𝐚 𝐛𝐞𝐭𝐭𝐞𝐫 𝐝𝐞𝐯𝐞𝐥𝐨𝐩𝐞𝐫! #Python #Day12 #CodingJourney #Sets #DataStructures #LearningPython #Consistency 🚀
To view or add a comment, sign in
-
-
📅 Day 17/30 — House Recommendation System (Python + ML + Streamlit) 🏡🤖 🔹 Project Overview: Built a House Recommendation System that helps users find properties based on their specific requirements using Machine Learning. Designed an interactive system with Streamlit to take user inputs and return relevant house suggestions. 🔹 Tools Used: Python | Machine Learning | Streamlit 🔹 Key Features: • Personalized house recommendations based on user preferences 🏡 • User input-driven filtering (budget, location, features) 🎯 • Real-time property suggestions ⚡ • Data preprocessing and feature engineering 🔧 • Efficient recommendation logic using similarity techniques 🤖 🔹 What I Learned: • Building practical recommendation systems using ML • Handling user input and mapping it to meaningful outputs • Feature engineering for improving recommendations • Creating interactive applications with Streamlit • Applying ML to solve real-world user problems 🔗 GitHub Repository: https://lnkd.in/dH79ives #Python #MachineLearning #Streamlit #RecommendationSystem #DataScience #MLProjects #TechProjects #30DaysOfCode 🚀
To view or add a comment, sign in
-
Day 64 of my #100DaysOfCode challenge 🚀 Today I worked on generating all combinations of a string using Python’s itertools module. This is an important concept in combinatorics and widely used in problem-solving and interviews. What the program does: • Takes a string as input • Generates all possible combinations (subsets) • Uses itertools.combinations() • Prints combinations of all lengths Example (Input: "abc"): All combinations: a b c ab ac bc abc How the logic works: Step-by-step: 1. Loop from length = 1 to n 2. Generate combinations of each length 3. Join characters into strings 4. Store and print results It systematically builds all possible subsets ✔️ Why this is important: – Core concept in combinatorics – Used in problems like: Subset generation Feature selection Probability problems – Frequently asked in interviews – Helps understand power set logic Time Complexity: O(2ⁿ) Space Complexity: O(2ⁿ) Key Takeaways: – Understanding combinations vs permutations – Using Python’s powerful itertools – Generating subsets efficiently – Clean and readable implementation #100DaysOfCode #Day64 #Python #Programming #Combinations #Itertools #Algorithms #DSA #CodingPractice #ProblemSolving #InterviewPrep #LearnByDoing #DeveloperJourney #Consistency #BTech #CSE #AIandML #VITBhopal #TechJourney
To view or add a comment, sign in
-
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development