Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions HEAPSORT.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#include<stdio.h>
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void heapify(int arr[], int n ,int i)
{
int largest =i;
int left = 2*i+1;
int right= 2*i+2;

if(left < n && arr[left] > arr[largest])
largest = left;
if(right < n && arr[right] > arr[largest])
largest = right;

if(largest != i){
swap(&arr[i], &arr[largest]);
heapify(arr,n,largest);
}
}
void heapsort(int arr[], int n)
{
for(int i = n/2-1; i >= 0; i--)
heapify(arr,n,0);

for(int i =n-1;i>=0;i--){
swap(&arr[0],&arr[i]);

heapify(arr,i,0);
}
}
int main()
{
int n,i;
printf("Enter the size of array: ");
scanf("%d",&n);

int arr[n];
printf("Enter %d element of array: ",n);
for(i=0;i<n;i++)
scanf("%d ", &arr[i]);

heapsort(arr,n);

printf("Sorted array: ");
for(i=0;i<n;i++)
printf("%d ",arr[i]);
}
Binary file added HEAPSORT.exe
Binary file not shown.
34 changes: 34 additions & 0 deletions bubble_sort.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#include<stdio.h>

void bubble_Sort(int arr[],int n,int i, int j)
{
int temp;
for(i=0;i<n-1;i++){
for(j=0;j<n-1;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}

}

int main()
{
int arr[100],n,i;

printf("Enter the size of array:");
scanf("%d",&n);

printf("Enter %d element of array: ", n);
for(i=0;i<n;i++)
scanf("%d",&arr[i]);

printf("Sorted array: ");
bubble_Sort(arr,n,0,n-1);
for(i=0;i<n;i++)
printf("%d ", arr[i]);

}
Binary file added bubble_sort.exe
Binary file not shown.
78 changes: 78 additions & 0 deletions counting_sort.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
//Counting sort C program.

#include<stdio.h>

/*void count_Sort(int arr[], int n, int max){
int sorted[10];
int count[10],i;


for(i=0;i<=max;i++){
count[i]=0;
}
for(i=0;i<n;i++){
count[arr[i]]++;
}
for(i=1;i<=max;i++){
count[i]=count[i]+count[i-1];
}

for(i=n-1;i>=0;i--){
sorted[count[arr[i]]-1]=arr[i];
count[arr[i]]--;
}
for(i=0;i<n;i++)
arr[i]=sorted[i];

printf("sorted array: ");

for(i=0;i<n;i++)
printf("%d ",arr[i]);
} */
void count_Sort(int arr[],int n,int max)
{
int sort[10];
int count[10],i;

for(i=0;i<=max;i++){
count[i]=0;
}
for(i=0;i<n;i++){
count[arr[i]]++;
}
for(i=1;i<=max;i++){
count[i]=count[i]+count[i-1];
}
for(i=n-1;i>=0;i--){
sort[count[arr[i]]-1]=arr[i];
count[arr[i]]--;
}

for(i=0;i<n;i++)
arr[i]=sort[i];

printf("Sorted array: ");
for(i=0;i<n;i++)
printf("%d ", arr[i]);



}
int main()
{
int arr[100],n,i,max=0;
printf("Enter the size of array: ");
scanf("%d",&n);

printf("Enter %d element of array: ",n);
for(i=0;i<n;i++){
scanf("%d",&arr[i]);
if(arr[i]>max){
max=arr[i];
}
}
// printf("%d\n",max);
count_Sort(arr,n,max);
return 0;
}

Binary file added counting_sort.exe
Binary file not shown.
54 changes: 54 additions & 0 deletions heap_sort.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#include<stdio.h>

void swap(int arr[],int i,int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
void heapify(int arr[],int n,int left){
for( int i =n-1;i >=0;i-- ){
int left = 2*left+1;
int right = 2*left+2;
if( left < n && arr[left] > arr[i] ){
swap(arr,left,i);
}
if( right < n && arr[right] > arr[i] ){
swap(arr,right,i);
}
}
}
void heapsort(int arr[],int n){

for(int i = n/2-1; i >= 0; i--)
heapify(arr,n,0);

for(int i =n-1;i>=0;i--){
swap(arr,i,0);

heapify(arr,i,0);
}



/* heapify(arr,n,0);
for(int i = n-1;i >0;i--){
swap(arr,i,0);
heapify(arr,i,0);
}*/
}
int main(){
int n;
printf("Enter the size of array : ");
scanf("%d",&n);
int arr[n];
printf("Enter %d array elements: ",n);
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
}
heapsort(arr,n);
printf("Sorted Array : ");
for(int i = 0; i < n;i++){
printf("%d ",arr[i]);
}
return 0;
}
Binary file added heap_sort.exe
Binary file not shown.
52 changes: 52 additions & 0 deletions merge_sort.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#include<stdio.h>

void merge_sort(int arr[100],int start, int end){

int mid;
if(start<end){
mid=(start+end)/2;
merge_sort(arr,start,mid);
merge_sort(arr,mid+1,end);
merge(arr,start,mid,end);
}
}
void merge(int arr[],int start,int mid, int end){
int b[100],i=start,j=mid+1,k=start;
while(i<=mid && j<=end){
if(arr[i]<=arr[j]){
b[k++]=arr[i++];
}
else
b[k++]=arr[j++];
}
if(i>mid){
while(j<=end){
b[k++]=arr[j++];
}
}
else{
while(i<=mid)
b[k++]=arr[i++];
}
for(i=start;i<=end;i++){
arr[i]=b[i];
}
}
int main()
{
int arr[100],n,i;
printf("Enter the size of array: ");
scanf("%d",&n);

printf("Enter %d element of array: ",n);
for(i=0;i<n;i++){
scanf("%d",&arr[i]);
}

merge_sort(arr,0,n-1);
printf("Sorted elements are: ");
for(i=0;i<n;i++)
printf("%d ",arr[i]);

return 0;
}
Binary file added merge_sort.exe
Binary file not shown.
53 changes: 53 additions & 0 deletions quick_sort.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#include<stdio.h>

void quick_sort(int arr[],int start,int end)
{
int i,j,pivot,temp;
if(start<end){
pivot=start;
i=start;
j=end;

while(i<j){
while(arr[i]<=arr[pivot] && i<end)
i++;
while(arr[j]>arr[pivot])
j--;
if(i<j){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
temp=arr[pivot];
arr[pivot]=arr[j];
arr[j]=temp;

quick_sort(arr,0,j-1);
quick_sort(arr,j+1,end);
}
}




int main()
{
int arr[100],n,i;

printf("Enter the total number of array element: ");
scanf("%d",&n);

printf("Enter %d array elements: ",n);
for(i=0;i<n;i++){
scanf("%d",&arr[i]);
}

quick_sort(arr,0,n-1);
printf("sorted elements are: " );
for(i=0;i<n;i++){
printf("%d ",arr[i]);
}
return 0;

}
Binary file added quick_sort.exe
Binary file not shown.