qsort快速排序

来源:互联网 发布:组织架构及营销网络 编辑:程序博客网 时间:2024/06/05 07:27

非常使用的快速排序算法,不稳定排序


#include<stdio.h>#include<stdlib.h>/* * qsort invoke this function */int compare_integers( void const *a, void const *b ){    register int const *pa = a;    register int const *pb = b;    return *pa > *pb ? 1 : *pa < *pb ? -1 : 0;  // cool !}int main( int argc, char *argv[] ){    int *array;    int n_values;    int i;    /*     * see how many values there     */    printf( "How many values there?\n" );    if( scanf( "%d", &n_values) == EOF || n_values <= 0 ){        printf( "Illegal number of values.\n" );         exit( EXIT_FAILURE );    }    /*     * allocate mem to store the values     */    array = malloc( n_values * sizeof( int ) );    if( array == NULL ){        printf( "can't get mem for that values!\n" );        exit( EXIT_FAILURE );    }    /*     * load these numbers     */    for( i = 0; i < n_values; ++i ){        printf("? ");         if( scanf( "%d", array + i ) == EOF ){            printf( "error reading value #%d\n", i );             free( array );            exit( EXIT_FAILURE );        }    }    /*     * sort for these values     */    qsort( array, n_values, sizeof( int ), compare_integers );    /*     * print the result     */    printf( "\nThe result is as follows:\n" );    for( i = 0; i < n_values; ++i ){        printf( "%d\n", array[i] );     }        free( array );    exit( 0 );}


0 0
原创粉丝点击