"Андрей Богатырев. Хрестоматия по программированию на Си в Unix" - читать интересную книгу автора

ssort( strings );
/* распечатка */
for( next = strings ; *next ; next++ )
printf( "%s\n", *next );
return 0;
}

1.50. Реализуйте алгоритм быстрой сортировки.

А. Богатырев, 1992-95 - 22 - Си в UNIX

/* Алгоритм быстрой сортировки. Работа алгоритма "анимируется"
* (animate-оживлять) при помощи библиотеки curses.
* cc -o qsort qsort.c -lcurses -ltermcap
*/
#include "curses.h"

#define N 10 /* длина массива */

/* массив, подлежащий сортировке */
int target [N] = {
7, 6, 10, 4, 2,
9, 3, 8, 5, 1
};

int maxim; /* максимальный элемент массива */

/* quick sort */
qsort (a, from, to)
int a[]; /* сортируемый массив */
int from; /* левый начальный индекс */
int to; /* правый конечный индекс */
{
register i, j, x, tmp;

if( from >= to ) return;
/* число элементов <= 1 */

i = from; j = to;
x = a[ (i+j) / 2 ]; /* значение из середины */

do{
/* сужение вправо */
while( a[i] < x ) i++ ;

/* сужение влево */
while( x < a[j] ) j--;

if( i <= j ){ /* обменять */
tmp = a[i]; a[i] = a[j] ; a[j] = tmp;