Skip to main content

Command Palette

Search for a command to run...

Divide and Conquer

Updated
•2 min read•View as Markdown
F

Assalamualaikum warahmatullah wabarakatuh( traditional Islamic greeting in Arabic "Assalamu alaikum": "Peace be upon you." "Wa rahmatullahi": "And the mercy of Allah." "Wa barakatuh": "And His blessings.") I’m Faraz Alam, and I’m documenting my journey through the world of software technology. Despite earning a master’s degree in Computer Applications and having access to opportunities provided by my tier-3 college, I struggled to take full advantage of them due to poor management and a less productive environment. This led to joblessness, primarily due to a lack of upskilling. Now, I am dedicated to enhancing my skills and knowledge with the aim of securing a valuable job offer from leading product-based companies, including those in the FAANG group (Facebook, Amazon, Apple, Netflix, Google) and other prominent tech giants. This documentation is not for self-promotion; rather, it is for anyone who is waiting for an opportunity but feels they lack the tools and skills required to overcome challenges. It’s a testament to the effort and responsibility needed to navigate the journey towards success when you take charge of your own path. Date: 31 July 2024, 07:25 AM This page will be updated regularly to reflect new achievements and milestones as I continue to build my career.

Level:- 1

  1. Write a program to implement merge sort.

    
     public class Merge {
       public static void MergeSort(int arr[], int si, int ei) {
         if (si >= ei) {
           return;
         }
         int mid = si + (ei - si) / 2;
         MergeSort(arr, si, mid);//left part
         MergeSort(arr, mid + 1, ei);//right part
         merge(arr, si, mid, ei);
       }
    
       public static void merge(int arr[], int si, int mid, int ei) {
         //left(0,3)=4, right(4,6)=3-> 6-0+1, as array is zero based
         int temp[] = new int[ei - si + 1];
         int i = si;//left part
         int j = mid + 1;//right part
         int k = 0;//temp arr
         while (i <= mid && j <= ei) {    
           if (arr[i] < arr[j]) {
             temp[k] = arr[i];
             i++;
           } else {
             temp[k] = arr[j];
             j++;
           }
           k++;
         }
         //if something left in left part
         while (i <= mid) {
           temp[k++] = arr[i++];
         }
         //right part
         while (j <= ei) {
           temp[k++] = arr[j++];
         }
         //copy temp to original array
         for (k = 0, i=si; k < temp.length; k++, i++) {
           arr[i] = temp[k];
         }
       }
       public static void printArray(int arr[]) {
         for (int i = 0; i < arr.length; i++) {
           System.out.print(arr[i] + " ");
         }
         System.out.println();
       }
       public static void main(String[] args) {
         int arr[] = { 6, 3, 9, 5, 2, 8 };
         MergeSort(arr, 0, arr.length - 1);
         printArray(arr);
       }
     }
    

  2. Write a program to implement Quick Sort.

     public class Quick {
       public static void quickSort(int arr[], int si, int ei) {
         if (si >= ei) {
           return;
         }
         //last is pivot
         int pidx=partition(arr, si, ei);
         quickSort(arr,si,pidx-1);//left
         quickSort(arr,pidx+1,ei);//right
       }
    
       public static int partition(int arr[], int si, int ei) {
         int pivot = arr[ei];
         int i = si - 1;
         for (int j = si; j <ei; j++) {
           if (arr[j] <= pivot) {
             i++;
             int temp = arr[j];
             arr[j] = arr[i];
             arr[i] = temp;
           }
         }
         i++;
         int temp = pivot;
         arr[ei] = arr[i];//pivot=arr[i]
         arr[i] = temp;
         return i;
    
       }
       public static void print(int arr[]) {
         for (int i = 0; i < arr.length; i++) {
           System.out.print(arr[i] + " ");
         }
         System.out.println();
       }
       public static void main(String[] args) {
         int arr[] = { 6, 3, 8, 9, 2, 5 };
         quickSort(arr, 0, arr.length - 1);
         print(arr);
       }
     }
    

Data Structures And Algorithms

Part 8 of 8

This series is a comprehensive guide to mastering data structures and algorithms, spanning from fundamental concepts to advanced levels, equipping you with the problem-solving skills which are solved during SDE preparations of product based company.

Start from the beginning

Basics Question

Write a program to count digit in a number public class Main { public static int countDigit(int num){ int count= (int)(Math.log10(num)+1); return count; } public static void main(String[] args) { System.out...