0
点赞
收藏
分享

微信扫一扫

排序(使用折半法对数组元素从大到小排序)

AbrahamW 2022-02-11 阅读 62
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void CelerityRun(int left, int right, int array[])
{
	int i, j;
	int middle, iTemp;
	i = left;
	j = right;
	middle = array[(left + right) / 2];
	do
	{
		while ((array[i] < middle) && (i < right))
			i++;
		while ((array[j] > middle) && (j > left))
			j--;
		if (i <= j)
		{
			iTemp = array[i];
			array[i] = array[j];
			array[j] = iTemp;
			i++;
			j--;
		}
	} while (i <= j);
	if (left < j)
		CelerityRun(left, j, array);
	if (right > i)
		CelerityRun(i, right, array);
}

int main()
{
	int i;
	int a[10];
	printf("为数组元素赋值:\n");
	for (i = 0; i < 10; i++)
	{
		printf("a[%d]=", i);
		scanf("%d", &a[i]);
	}
	CelerityRun(0, 9, a);
	printf("排序结果如下:\n");
	for (i = 0; i < 10; i++)
	{
		printf("%d\t", a[i]);
	}
	return 0;
}
举报

相关推荐

0 条评论