0% found this document useful (0 votes)
7 views5 pages

67 DSA Prac1

The document contains a Java program that implements two sorting algorithms: Heap Sort and Shell Sort. Users can input an array of integers and choose which sorting method to apply. The program then outputs the sorted array based on the selected algorithm.

Uploaded by

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

67 DSA Prac1

The document contains a Java program that implements two sorting algorithms: Heap Sort and Shell Sort. Users can input an array of integers and choose which sorting method to apply. The program then outputs the sorted array based on the selected algorithm.

Uploaded by

sumdhok2002
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Name- Sumedh

Machhindra Dhokare

Roll No- 67

import java.util.Scanner;

public class Heap_ShellSort {

public void sort(int arr[])

{ int n = arr.length;

int ch;

System.out.println("Enter 1 for HEAP SORT, 2 for SHELL

SORT: "); Scanner c= new Scanner(System.in);

ch=c.nextInt(); if(ch==1){

// HEAP SORT

for (int i = n / 2 - 1; i >= 0; i--) {

heapify(arr, n, i);

// Heap sort

for (int i = n - 1; i >= 0; i--

){ int temp = arr[0];

arr[0] = arr[i]; arr[i] =

temp;

heapify(arr, i, 0);

}
else{ // SHELL SORT for (int interval

= n / 2; interval > 0; interval /= 2) { for (int i =

interval; i < n; i += 1) { int temp = arr[i];

int j;

for (j = i; j >= interval && arr[j - interval] > temp; j -=

interval) { arr[j] = arr[j - interval];

arr[j] = temp;

void heapify(int arr[], int n, int i) {

int largest = i;

int l = 2 * i + 1;

int r = 2 * i + 2;

if (l < n && arr[l] > arr[largest])

largest = l;

if (r < n && arr[r] > arr[largest])

largest = r;

if (largest != i) {

int swap = arr[i];

arr[i] = arr[largest];

arr[largest] = swap;
heapify(arr, n, largest);

static void printArray(int arr[])

{ int n = arr.length; for

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

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

System.out.println();

// DRIVER CODE public static


void main(String args[]) {

Scanner obj=new Scanner(System.in);

System.out.print("Enter number of elements: ");

int n=obj.nextInt();

int arr[]=new int[n];

int num; for(int

i=0;i<n;i++){

System.out.println("Enter number: ");

num=obj.nextInt(); arr[i]=num;

Heap_ShellSort srt = new Heap_ShellSort();

srt.sort(arr);

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

printArray(arr);

}
Output:

Enter number of elements: 8

Enter number:

12

Enter number:

10

Enter number:

17

Enter number:

Enter number:

Enter number:

Enter number:

Enter number:

20

Enter 1 for HEAP SORT, 2 for SHELL SORT:

Sorted array is

4 6 8 9 10 12 17 20

Enter number of elements: 5

Enter number:

6 Enter number:

Enter number:

Enter number:

15
Enter number:

Enter 1 for HEAP SORT, 2 for SHELL SORT:

Sorted array is2 3 6 8 15

You might also like