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


#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]);
}

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.