选择排序的一种递归写法

#include<stdio.h>
void Sort(int *header,int length)
{
	if(length > 0)
	{
		int i = 0;
		int temp = 0;
		for(i = 1; i < length; i++)
		{
			if(*(header + i) >= *header)
			{
				temp = *header;
				*header = *(header + i);
				*(header + i) = temp;
			}
		}
		Sort(header + 1,length - 1);

	}
	else
	{
		return;
	}
}
int main()
{
	int in_str[8] = {12, 13, 7, 9, 11, 37, 45, 34};

	int *header = in_str;

	int n = 8;

	Sort(header,n);

	int i = 0;

	for(i = 0; i < n; i++)
	{
		printf(" %d ",*(header + i));
	}
}



在这里mark一下,加深自己对递归的进一步理解

输出结果:


  

posted @ 2013-12-16 15:33  linux痴狂者  阅读(683)  评论(0编辑  收藏  举报