#include<stdio.h> #include<stdlib.h> main() { int heap[50],i,j,ch,size,loc,par; int temp; printf("enter the size of heap tree\n"); scanf("%d",&size); printf("all the elements\n"); for(i=0;i<size;i++) scanf("%d",&heap[i]); for(i=0;i<size;i++) { loc=i; do { par=(loc-1)/2; if(heap[par]<heap[loc]) { temp=heap[par]; heap[par]=heap[loc]; heap[loc]=temp; } loc=par; }while(loc!=0); } printf("heap tree is \n"); for(i=0;i<size;i++) printf("%d\t",heap[i]); for(j=size-1;j>=0;j--) { temp=heap[0]; heap[0]=heap[j]; heap[j]=temp; par=0; do { ch=2*par+1; if(heap[ch]<heap[ch+1]&&ch<j-1) ch++; if(heap[par]<heap[ch]&&ch<j) { temp=heap[par]; heap[par]=heap[ch]; heap[ch]=temp; } par=ch; }while(ch<j); } printf("\nsorted array\n"); for(i=0;i<size;i++) printf("%d\t",heap[i]); }
New Android apps UniqueKey
Showing posts with label Sorting. Show all posts
Showing posts with label Sorting. Show all posts
Friday, 20 February 2015
Heap Sort
Quick sort on String
/* A c program to perform quick sort on String */ #include<stdio.h> #include<string.h> #include<ctype.h> void quick(char [],int,int); main() { int first,last,i,j,n; char a[50]; printf("enter string\n"); gets(a); n=strlen(a); quick(a,0,n-1); printf("new string\n"); printf("%s",a); } void quick(char a[],int first,int last) { int i,j,pivot,temp; if(first<last) { pivot=first; i=first; j=last; while(i<j) { while(tolower(a[i])<=tolower(a[pivot])&&i<last) i++; while(tolower(a[j])>tolower(a[pivot])) j--; if(i<j) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } temp=a[pivot]; a[pivot]=a[j]; a[j]=temp; quick(a,first,j-1); quick(a,j+1,last); } }
Thursday, 28 August 2014
MERGE SORT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #include<stdio.h> void mergesort ( int [] , int , int ); void merge ( int [] , int , int , int ); main() { int a[50] , n , i , j , first , last , mid ; printf ("enter the number of elements\n"); scanf ("%d",&n); printf ("enter all elements\n"); for ( i = 0 ; i < n ; i++) scanf ("%d",&a[ i ] ); mergesort ( a , 0 , n-1 ); printf ("the sorted array is ..\n"); for ( i = 0 ; i < n ; i++ ) printf ("%d\n", a[ i ] ); } void mergesort ( int a[50] , int first , int last ) { int mid , i ; if ( first < last ) { mid = ( first + last ) / 2 ; mergesort ( a , first , mid ) ; mergesort ( a , mid+1 , last ); merge ( a , first , mid , last ); } } void merge ( int a[50] , int first , int mid , int last ) { int temp[50] , k , i , j ; k = first ; i = first ; j = mid+1 ; while ( i < = mid && j < = last ) { if ( a [ i ] < a [ j ] ) { temp[k] = a[i]; k++; i++; } else { temp[k] = a[j]; k++; j++; } } while ( i < = mid ) { temp[k] = a[i]; k++; i++; } while ( j < = last ) { temp[k] = a[j]; k++; j++; } for ( i = first ; i < = last ; i++ ) { a[ i ] = temp[ i ] ; } } |
QUICK SORT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include<stdio.h> #include<conio.h> void quick ( int [ ] , int , int ) ; main() { int a[50] , first , last , i , j , n ; printf("enter the no. of element in array\n"); scanf("%d",&n); printf("enter all elements\n"); for ( i = 0 ; i < n ; i++ ) scanf("%d",&a[i]); quick( a , 0 , n-1 ); printf("sorted array\n"); for ( i = 0 ; i < n ; i++ ) printf("%d\t",a[i]); getch(); } void quick ( int a[ ] , int first , int last ) { int i , j , pivot , temp ; if ( first < last ) { pivot=first; i=first; j=last; while(i<j) { while(a[i]<=a[pivot]&&i<last) i++; while(a[j]>a[pivot]) j--; if(i<j) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } temp = a[pivot] ; a[pivot] = a[j] ; a[j] = temp ; quick ( a , first , j-1 ) ; quick( a , j+1 , last ) ; } } _________________________________________________________________________________ |
INSERTION SORT.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | /* a c program to perform insertion sort */ #include<stdio.h> #include<stdlib.h> main() { int a[50] , i , j , index , n; printf("enter the number of element in array\n"); scanf("%d",&n); printf("enter all the elements of array\n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=1;i<n;i++) { index = a[i]; for(j=i ; j>0 && a[j-1]>index ; j--) { a[j] = a[j-1]; } a[j] = index; } printf("sorted array in Ascending Order is \n"); for(i=0;i<n;i++) { printf("%d\t",a[i]); } } |
SELECTION SORT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /* A C program to perform insertion sort */ #include<stdio.h> #include<stdlib.h> main() { int a[50] , i , j , n ,temp , min; printf("enter the number of elements in array\n"); scanf("%d",&n); // accepts the number of elements. printf("enter all the elements \n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); // accepts all the elements of the array. } for(i=0;i<n-1;i++) { min=i; for(j=i+1;j<n;j++) { if(a[j]<a[min]) min=j; } temp = a[i]; // swapping. a[i] = a[min]; a[min] = temp; } printf("sorted array in Ascending Order is \n"); for(i=0;i<n;i++) { printf("%d\t",a[i]); } } |
BUBBLE SORT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | /* a c proram to perform bubble sorting */ #include<stdio.h> #include<stdlib.h> main() { int a[50] , n ,i , j; int temp; // use temp variable for swapping. printf("enter the number of elements in array\n"); scanf("%d",&n); // accepts number of elements. printf("enter all the elements\n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); // accepts all the elements of the array. } for(i=0;i<n-1;++i) { for(j=0;j<n-i-1;++j) { if(a[j]>a[j+1]) { temp = a[j]; // swapping. a[j] = a[j+1]; a[j+1] = temp; } } } printf("Array in Ascending order ::\n"); for(i=0;i<n;i++) printf("%d\t",a[i]); } // end of main function. |
Subscribe to:
Posts (Atom)