rgiqsort.c
来自「c语言库函数!里面包含了所以c语言中的系统函数的实现及其详细说明和代码!请大家及」· C语言 代码 · 共 55 行
C
55 行
/* +++Date last modified: 05-Jul-1997 */
/*
** 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 + -
显示快捷键?