rg_qsort.c2
来自「由8051/8096/8099/8048单片机汇编工具、 汇编语言、摩托罗拉m」· C2 代码 · 共 51 行
C2
51 行
/*
** quicksort.c -- quicksort integer array
**
** public domain by Raymond Gardner 12/91
*/
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 + -
显示快捷键?