diff --git a/HEAPSORT.c b/HEAPSORT.c new file mode 100644 index 0000000..dcb272c --- /dev/null +++ b/HEAPSORT.c @@ -0,0 +1,51 @@ +#include +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 + +void bubble_Sort(int arr[],int n,int i, int j) +{ + int temp; + for(i=0;iarr[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 + +/*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=0;i--){ + sorted[count[arr[i]]-1]=arr[i]; + count[arr[i]]--; + } + for(i=0;i=0;i--){ + sort[count[arr[i]]-1]=arr[i]; + count[arr[i]]--; + } + + for(i=0;imax){ + max=arr[i]; + } + } + // printf("%d\n",max); + count_Sort(arr,n,max); +return 0; +} + diff --git a/counting_sort.exe b/counting_sort.exe new file mode 100644 index 0000000..3ab279e Binary files /dev/null and b/counting_sort.exe differ diff --git a/heap_sort.c b/heap_sort.c new file mode 100644 index 0000000..d9ace9c --- /dev/null +++ b/heap_sort.c @@ -0,0 +1,54 @@ +#include + +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 + +void merge_sort(int arr[100],int start, int end){ + + int mid; + if(startmid){ + 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 + +void quick_sort(int arr[],int start,int end) +{ + int i,j,pivot,temp; + if(startarr[pivot]) + j--; + if(i