是用臭名昭著的冒泡法,还是快速排序?或者SHELL排序?

解决方案 »

  1.   

    void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );
    Example/* QSORT.C: This program reads the command-line
     * parameters and uses qsort to sort them. It
     * then displays the sorted arguments.
     */#include <stdlib.h>
    #include <string.h>
    #include <stdio.h>int compare( const void *arg1, const void *arg2 );void main( int argc, char **argv )
    {
       int i;
       /* Eliminate argv[0] from sort: */
       argv++;
       argc--;   /* Sort remaining args using Quicksort algorithm: */
       qsort( (void *)argv, (size_t)argc, sizeof( char * ), compare );   /* Output sorted list: */
       for( i = 0; i < argc; ++i )
          printf( "%s ", argv[i] );
       printf( "\n" );
    }int compare( const void *arg1, const void *arg2 )
    {
       /* Compare all of both strings: */
       return _stricmp( * ( char** ) arg1, * ( char** ) arg2 );
    }
    Output[C:\code]qsort every good boy deserves favor
    boy deserves every favor good
      

  2.   

    注意那个int (__cdecl *compare )(const void *elem1, const void *elem2 ) 
                        ~~~~~~要提供一个比较的函数