插入法排序的实现

/*
 * sort2.c
 *
 *  Created on: Nov 8, 2012
 *      Author: fsxchen
 */


#include 
int * input(int n);
int * sort(int *num, int len);

int *input(int n)
{
	int i;
	int num[n];
	for(i = 0; i < n; ++i)
	{
		printf("[%d]:Please input: ", (i + 1));
		scanf("%d", &num[i]);
	}
	return num;
}

int  *sort(int *num, int len)
{
	int key, i, j;
	for(i = 1; i <= len; ++i)
	{
		key = num[i];
		for(j = i - 1; j >= 0; --j)
		{
			if(key < num[j])
			{
				num[j + 1] = num[j];
				num[j] = key;
			}
		}
	}
	return num;
}

void ArrPrintf(int *num, int len)
{
	int i;
	for(i = 0; i < len; ++i)
		printf("%d\t", num[i]);
	printf("\n");
}

int main()
{
	int len;
	int *num;
	int *newnum;
	printf("please input the totle num:");
	scanf("%d",&len);
	num = input(len);
	newnum = sort(num, len);
	ArrPrintf(newnum, len);
	return 0;
}

  插入法排序的实现,主要是一个key,将要插入的值放入key中,然后和之前已经排好序的数组作比较。找到合适的位置插入。

你可能感兴趣的:(插入法排序的实现)