Skip to main content

Featured

Merge Sort in C++

  Merge Sort in C++ Introduction Merge Sort is a popular sorting algorithm that follows the Divide and Conquer approach. It divides an array into smaller subarrays, recursively sorts those subarrays, and finally merges the sorted subarrays to produce a completely sorted array. In this tutorial, we will learn how to implement Merge Sort in C++ . The program divides the array into two halves using the mid index, recursively sorts both halves, and then combines them using the merge() function. Merge Sort has a time complexity of O(n log n) in the best, average, and worst cases. Table of Contents Algorithm C++ Program Input Sample Output Output Explanation Dry Run Flow of Execution Time Complexity Space Complexity Applications Key Points Interview Questions Frequently Asked Questions Keywords Conclusion Algorithm Start the program. Read the size of the array. Read the array elements from the user. Call the mer...

Top 5 Examples of volatile in C

Top 5 Examples of volatile in C

// Example 1: GPIO Register
#define GPIO_PORT (*(volatile unsigned int*)0x40021000)
while ((GPIO_PORT & 0x01) == 0) { }

// Example 2: Interrupt Flag
volatile int interrupt_flag = 0;
void ISR() { interrupt_flag = 1; }

// Example 3: Watchdog Reset
volatile int system_reset = 0;
while (!system_reset) { }

// Example 4: Multi-thread Flag
volatile int data_ready = 0;
while (!data_ready) { }

// Example 5: Sensor Polling
#define SENSOR_STATUS_REG (*(volatile unsigned char*)0x40024000)
while ((SENSOR_STATUS_REG & 0x01) == 0) { }

Use volatile whenever a variable might change unexpectedly due to hardware, interrupts, or concurrency. This prevents compiler optimizations that can cause bugs in real-time systems.

Comments

Popular Posts

🌙