C Programming Tutorial

 
 
 
 
#include <stdio.h>
#include <conio.h>

int split ( int*, int, int ) ;

void main( )
{
    int arr[10] = { 11, 2, 9, 13, 57, 25, 17, 1, 90, 3 } ;
    int i ;

    void quicksort ( int *, int, int ) ;

    clrscr( ) ;

    printf ( \"Quick sort.\\n\" ) ;
    printf ( \"\\nArray before sorting:\\n\") ;

    for ( i = 0 ; i <= 9 ; i++ )
        printf ( \"%d\\t\", arr[i] ) ;

    quicksort ( arr, 0, 9 ) ;

    printf ( \"\\nArray after sorting:\\n\") ;

    for ( i = 0 ; i <= 9 ; i++ )
        printf ( \"%d\\t\", arr[i] ) ;

    getch( ) ;
}

void quicksort ( int a[ ], int lower, int upper )
{
    int i ;
    if ( upper > lower )
    {
        i = split ( a, lower, upper ) ;
        quicksort ( a, lower, i - 1 ) ;
        quicksort ( a, i + 1, upper ) ;
    }
}

int split ( int a[ ], int lower, int upper )
{
    int i, p, q, t ;

    p = lower + 1 ;
    q = upper ;
    i = a[lower] ;

    while ( q >= p )
    {
        while ( a[p] < i )
            p++ ;

        while ( a[q] > i )
            q-- ;

        if ( q > p )
        {
            t = a[p] ;
            a[p] = a[q] ;
            a[q] = t ;
        }
    }

    t = a[lower] ;
    a[lower] = a[q] ;
    a[q] = t ;

    return q ;
}

    Related Post:
  1. Program to add two polynomials maintained as linked lists

  2. Program to read a character from KeyBoard using Interrupt 21h

  3. PROGRAM FOR FORWARD SCHEDULING FOR EQUAL DISTRIBUTION

  4. Program to find standard deviation strdev using thread

  5. PROGRAM THAT CHECK WHETHER THE GIVEN NUMBER IS PRIME IN PARALLEL

  6. Program that shows typical declarations, assignments and values stored in various types of variables

  7. Program to perform sorting on words or string values using for loop

  8. Program to add the corresponding index value of two arrays and result is stored in the 3rd arra

  9. Program to calculate months in a provided number of days from user

  10. Compute the yearly depreciation of the value of an item is given by DEPREATION = (PURCHASE VALUE - SALVAGE VALUE) / YEAR OF SERVICE

  11. Program to create processes using fork() and check different states of zombie process

  12. Program to create header file for fork,join,shared memory,lock,free shared memory and free semaphore

  13. Program to simulate process synchronization, call wait function so that the executing process gets blocked and then print their process ids

  14. Program to interchange the Small and Capital Letters and Unload the TSR on occurance of @ character

  15. Program that implements depth first search algorithm.

  16. FUNCTION TABULATED AT EQUAL INTERVAL USING BACKWARD DIFFERENCE BETWEEN TWO VALUE

  17. Program to print number triangle in reverse pattern

  18. Program to multiply matrix (10 x 10) with a vector using variation in Loop Splitting using multiple barriers

  19. Illustration of else if ladder

  20. Doubly circular link list or Circular doubly link list

 
 
Didn't find what you were looking for? Find more on Quick sort