rgiqsort.c

来自「国外网站上的一些精典的C程序」· C语言 代码 · 共 53 行

C
53
字号
/*** quicksort.c -- quicksort integer array**** public domain by Raymond Gardner     12/91*/#include "snipsort.h"static void swap(int *a, int *b){      register int t;      t = *a;      *a = *b;      *b = t;}void quicksort(int v[], unsigned n){      unsigned i, j, ln, rn;      while (n > 1)      {            swap(&v[0], &v[n/2]);            for (i = 0, j = n; ; )            {                  do                        --j;                  while (v[j] > v[0]);                  do                        ++i;                  while (i < j && v[i] < v[0]);                  if (i >= j)                        break;                  swap(&v[i], &v[j]);            }            swap(&v[j], &v[0]);            ln = j;            rn = n - ++j;            if (ln < rn)            {                  quicksort(v, ln);                  v += j;                  n = rn;            }            else            {                  quicksort(v + j, rn);                  n = ln;            }      }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?