0% found this document useful (0 votes)
6 views15 pages

Dsa Da 3

Uploaded by

gawono2945
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)
6 views15 pages

Dsa Da 3

Uploaded by

gawono2945
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/ 15

Hardik Chhallani [ Reg NO.

: 22BCE2454]

SELECTION SORT

PROGRAM CODE:
//SelectionSort
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
int arr[SIZE];
void SelectionSort()
{
int t,l;
for(int i=0;i<SIZE;i++)
{
l=i;
for(int j=i+1; j<SIZE;j++){
if(arr[l]>arr[j])
l=j;
}
t=arr[i];
arr[i] = arr[l];
arr[l] = t;
}
}
void Display()
{
printf("The numbers in ascending order: ");
for(int i=0; i<SIZE ; i++)
scanf(“%d”,&arr[i]);
SelectionSort();
Display();
return 0;
}
OUTPUT:
BUBBLE SORT
PROGRAM CODE:
//BubbleSort
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
int arr[SIZE];
void BubbleSort()
{
int t;
for(int i=SIZE-1;i>0;i--)
{
for(int j=0;j<i;j++)
{
if(arr[j]>arr[j+1])
{
t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}
}
}
}
void Display()
{
printf("The numbers in ascending order: ");
for(int i=0;i<SIZE;i++)
printf("%d ",arr[i]);
}
int main() {
printf("Enter %d numbers: ",SIZE);
for(int i=0;i<SIZE;i++)
scanf("%d",&arr[i]);
BubbleSort();
Display();
return 0;}
OUTPUT:
INSERTION SORT
PROGRAM CODE:
// InsertionSort
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
int arr[SIZE];
void InsertionSort()
{
int t,k,j;
for(int i=0;i<SIZE-1;i++)
{
if(arr[i]>arr[i+1])
{
k=arr[i+1];
for(j=i;(arr[j]>k)&&(j>=0);j--)
arr[j+1]=arr[j];
arr[++j]=k;
}
}
}
void Display()
{
printf("The numbers in ascending order: ");
for(int i=0;i<SIZE;i++)
printf("%d ",arr[i]);
}
int main() {
printf("Enter %d numbers: ",SIZE);
for(int i=0;i<SIZE;i++)
scanf("%d",&arr[i]);
InsertionSort();
Display();
return 0;
}
OUTPUT:
MERGE SORT
PROGRAM CODE:
//MergeSort
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
int arr[SIZE];
void Merge(int arr[],int lower,int middle,int upper)
{
int i=lower,j=middle+1,k=0,arr2[upper+1];
while(i<=middle && j<=upper)
{
if(arr[i]>=arr[j])
arr2[k++]=arr[j++];
else
arr2[k++]=arr[i++];
}
for(int l=j;l<=upper;l++)
arr2[k++]=arr[j++];
for(int m=i;m<=middle;m++)
arr2[k++]=arr[i++];
for(int n=lower,o=0;n<=upper;n++,o++)
arr[n]=arr2[o];
}
void MergeSort(int arr[],int lower,int upper)
{
if(lower>=upper)
return;
int middle=(lower+upper)/2;
MergeSort(arr,lower,middle);
MergeSort(arr,middle+1,upper);
Merge(arr,lower,middle,upper);
}
void Display()
{
printf("The numbers in ascending order: ");
for(int i=0;i<SIZE;i++)
printf("%d ",arr[i]);
}
int main() {
printf("Enter %d numbers: ",SIZE);
for(int i=0;i<SIZE;i++)
scanf("%d",&arr[i]);
MergeSort(arr,0,SIZE-1);
Display();
return 0;
}
OUTPUT:
QUICK SORT
PROGRAM CODE:
// QuickSort
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
int arr[SIZE];
int partition(int arr[], int lower, int upper) {
int pivot = arr[lower], start = lower, end = upper, t;
while (start < end) {
while (arr[start] <= pivot && start < upper)
start++;
while (arr[end] > pivot) end--;
if (start < end) {
t = arr[start];
arr[start] = arr[end];
arr[end] = t;
}
}
t = arr[lower];
arr[lower] = arr[end];
arr[end] = t;
return end;
}
void QuickSort(int arr[], int lower, int upper) {
if (lower < upper) {
int loc = partition(arr, lower, upper);
QuickSort(arr, lower, loc - 1);
QuickSort(arr, loc + 1, upper);
}
}
void Display() {
printf("The numbers in ascending order: ");
for (int i = 0; i < SIZE; i++)
printf("%d ", arr[i]);
}
int main() {
printf("Enter %d numbers: ", SIZE);
for (int i = 0; i < SIZE; i++)
scanf("%d", &arr[i]);
QuickSort(arr, 0, SIZE - 1);
Display();
return 0;
}
OUTPUT:
COUNTING SORT

PROGRAM CODE:
// CountingSort
#include <stdio.h>
#include <stdlib.h>
#define SIZE 20
int arr[SIZE],arr2[SIZE];
void CountingSort(int arr[], int arr2[], int k, int n) {
int c[k+1];
for (int i=0; i<=k; i++) {
c[i] = 0;
}
for (int i=0; i<n; i++) {
c[arr[i]] = c[arr[i]] + 1;
}
for (int i=1; i<=k; i++) {
c[i] = c[i-1] + c[i];
}
for (int i=n-1; i>=0; i--) {
arr2[--c[arr[i]]] = arr[i];
}
for (int i=0; i<n; i++) {
arr[i] = arr2[i];
}
}
void Display()
{
printf("The numbers in ascending order: ");
for(int i=0;i<SIZE;i++)
printf("%d ",arr[i]);
}
int main() {
printf("Enter %d numbers: ",SIZE);
for(int i=0;i<SIZE;i++)
scanf("%d",&arr[i]);
CountingSort(arr,arr2,SIZE,SIZE);
Display();
return 0;
}
OUTPUT:

You might also like