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

📄 ut0sort.h

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 H
字号:
/**********************************************************************Sort utility(c) 1995 Innobase OyCreated 11/9/1995 Heikki Tuuri***********************************************************************/#ifndef ut0sort_h#define ut0sort_h#include "univ.i"/* This module gives a macro definition of the body ofa standard sort function for an array of elements of anytype. The comparison function is given as a parameter tothe macro. The sort algorithm is mergesort which has logarithmicworst case.*//***********************************************************************This macro expands to the body of a standard sort function.The sort function uses mergesort and must be defined separatelyfor each type of array.Also the comparison function has to be defined individuallyfor each array cell type. SORT_FUN is the sort function name.The function takes the array to be sorted (ARR),the array of auxiliary space (AUX_ARR) of same size,and the low (LOW), inclusive, and high (HIGH), noninclusive,limits for the sort interval as arguments.CMP_FUN is the comparison function name. It takes as argumentstwo elements from the array and returns 1, if the first is bigger,0 if equal, and -1 if the second bigger. For an eaxmaple of usesee test program in tsut.c. */#define UT_SORT_FUNCTION_BODY(SORT_FUN, ARR, AUX_ARR, LOW, HIGH, CMP_FUN)\{\	ulint		ut_sort_mid77;\	ulint		ut_sort_i77;\	ulint		ut_sort_low77;\	ulint		ut_sort_high77;\\  	ut_ad((LOW) < (HIGH));\  	ut_ad(ARR);\  	ut_ad(AUX_ARR);\\  	if ((LOW) == (HIGH) - 1) {\  		return;\  	} else if ((LOW) == (HIGH) - 2) {\  		if (CMP_FUN((ARR)[LOW], (ARR)[(HIGH) - 1]) > 0) {\  			(AUX_ARR)[LOW] = (ARR)[LOW];\  			(ARR)[LOW] = (ARR)[(HIGH) - 1];\  			(ARR)[(HIGH) - 1] = (AUX_ARR)[LOW];\  		}\  		return;\  	}\\	ut_sort_mid77 = ((LOW) + (HIGH)) / 2;\\	SORT_FUN((ARR), (AUX_ARR), (LOW), ut_sort_mid77);\	SORT_FUN((ARR), (AUX_ARR), ut_sort_mid77, (HIGH));\\	ut_sort_low77 = (LOW);\	ut_sort_high77 = ut_sort_mid77;\\  	for (ut_sort_i77 = (LOW); ut_sort_i77 < (HIGH); ut_sort_i77++) {\\  		if (ut_sort_low77 >= ut_sort_mid77) {\  			(AUX_ARR)[ut_sort_i77] = (ARR)[ut_sort_high77];\  			ut_sort_high77++;\  		} else if (ut_sort_high77 >= (HIGH)) {\  			(AUX_ARR)[ut_sort_i77] = (ARR)[ut_sort_low77];\  			ut_sort_low77++;\  		} else if (CMP_FUN((ARR)[ut_sort_low77],\				   (ARR)[ut_sort_high77]) > 0) {\  			(AUX_ARR)[ut_sort_i77] = (ARR)[ut_sort_high77];\  			ut_sort_high77++;\		} else {\  			(AUX_ARR)[ut_sort_i77] = (ARR)[ut_sort_low77];\  			ut_sort_low77++;\		}\	}\\  	for (ut_sort_i77 = (LOW); ut_sort_i77 < (HIGH); ut_sort_i77++) {\  		(ARR)[ut_sort_i77] = (AUX_ARR)[ut_sort_i77];\  	}\}\	#endif

⌨️ 快捷键说明

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