[C ++] brief notes -qsort function of the two-dimensional array sort

int compar(const void* a, const void* b)
{
	 return *(const int*)b - *(const int*)a; 一开始考虑不周,这一步可能导致数值溢出
	if (*(const int*)b > *(const int*)a) return +1;
	if (*(const int*)b < *(const int*)a) return -1;
	return 0;
}

int main(void)
{
	int s[3][3] = { 1, 5, 8
		, 7, 8, 3
		, 4, 6, 5 };

	qsort(s, sizeof(s) / sizeof(s[0]), sizeof(s[0]), &compar);

	for (size_t r = 0; r != sizeof(s) / sizeof(s[0]); ++r)
	{
		for (size_t c = 0; c != sizeof(s[r]) / sizeof(s[r][0]); ++c)
			printf("\t%d", s[r][c]);
		printf("\n");
	}

	return 0;
}
Published 43 original articles · won praise 4 · Views 1218

Guess you like

Origin blog.csdn.net/weixin_42176221/article/details/101113609