0% found this document useful (0 votes)
8 views

Merge sort

Uploaded by

nadeem shaik
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Merge sort

Uploaded by

nadeem shaik
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Merge sort

class MergeSort

// Merge two subarrays

void merge(int arr[], int p, int q, int r)

int n1 = q - p + 1;

int n2 = r - q;

int Left[] = new int[n1];

int Right[] = new int[n2];

for (int i = 0; i < n1; i++)

Left[i] = arr[p + i];

for (int j = 0; j < n2; j++)

Right[j] = arr[q + 1 + j];

// Maintain current index of sub-arrays

int i, j, k;

i = 0;

j = 0;

k = p;
while (i < n1 && j < n2)

if (Left[i] <= Right[j])

arr[k] = Left[i];

i++;

else

arr[k] = Right[j];

j++;

k++;

while (i < n1)

arr[k] = Left[i];

i++;

k++;

}
while (j < n2) {

arr[k] = Right[j];

j++;

k++;

// Divide the array into two subarrays, sort them and merge them

void mergeSort(int arr[], int left, int right)

if (left < right)

int mid = (left + right) / 2;

mergeSort(arr, left, mid);

mergeSort(arr, mid + 1, right);

// Merge the sorted subarrays

merge(arr, left, mid, right);

}
void printArray(int arr[])

int n = arr.length;

for (int i = 0; i < n; ++i)

System.out.print(arr[i] + " ");

System.out.println();

class MergeSortApp

public static void main(String args[])

int arr[] = { 66,33,11,44,00,88,22,99,55,77};

System.out.println("Given array:");

for(int i=0;i<arr.length;i++)

System.out.print(“ “ +arr[i]);

MergeSort obj = new MergeSort();

obj.mergeSort(arr, 0, arr.length - 1);

System.out.println("Sorted array:");

printArray(arr);
}

Quick Sort

import java.util.Arrays;

class Quicksort

static int partition(int array[], int low, int high)

int pivot = array[high];

int i = (low - 1);

for (int j = low; j < high; j++)

if (array[j] <= pivot)

i++;

int temp = array[i];

array[i] = array[j];

array[j] = temp;

}
int temp = array[i + 1];

array[i + 1] = array[high];

array[high] = temp;

return (i + 1);

static void quickSort(int array[], int low, int high)

if (low < high)

int pi = partition(array, low, high);

quickSort(array, low, pi - 1);

quickSort(array, pi + 1, high);

class QuickSortApp

public static void main(String args[])

int data[] = { 66,33,11,55,22,77,00,99,44,88};

System.out.println("Given Unsorted Array");

System.out.println(Arrays.toString(data));
int size = data.length;

quickSort(data, 0, size - 1);

System.out.println(" Sorted Array : ");

System.out.println(Arrays.toString(data));

You might also like