⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qsort.c

📁 linux内核
💻 C
字号:
/* * qsort.c * * This is actually combsort.  It's an O(n log n) algorithm with * simplicity/small code size being its main virtue. */#include <stddef.h>#include <string.h>static inline size_t newgap(size_t gap){  gap = (gap*10)/13;  if ( gap == 9 || gap == 10 )    gap = 11;  if ( gap < 1 )    gap = 1;  return gap;}void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)){  size_t gap = nmemb;  size_t i, j;  char *p1, *p2;  int swapped;  do {    gap = newgap(gap);    swapped = 0;        for ( i = 0, p1 = base ; i < nmemb-gap ; i++, p1 += size ) {      j = i+gap;      if ( compar(p1, p2 = (char *)base+j*size) > 0 ) {	memswap(p1, p2, size);	swapped = 1;      }    }  } while ( gap > 1 || swapped );}

⌨️ 快捷键说明

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