qsort.c

来自「unix环境下实现的cmm语言编译器」· C语言 代码 · 共 34 行

C
34
字号
void swap(char *v[], int i, int j);/*qsort:按递增顺序对v[left]...v[right]进行排序*/void qsort(char *v[], int left, int right,			 int (*comp)(void *, void *)){	int i, last;		if (left >= right)		return ;	swap(v, left, (left + right)/2);	last = left;	i = left + 1;	while (i <= right) {		if ((*comp)(v[i], v[left]) < 0) {			last = last + 1;			swap(v, last, i);		}		i = i + 1;	}	swap(v, left, last);	qsort(v, left, last-1,comp);	qsort(v, last+1, right,comp);}/*swap:交换v[i]和v[j]*/void swap(char *v[], int i, int j){	char *temp;	temp = v[i];	v[i] = v[j];	v[j] = temp;}

⌨️ 快捷键说明

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