0% found this document useful (0 votes)
13 views7 pages

Merge sort

Uploaded by

nadeem shaik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views7 pages

Merge sort

Uploaded by

nadeem shaik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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