排序算法三:插入排序

孤者浪人 提交于 2020-02-27 19:28:15
//把每个值,插入到适合他的位置。插入的方法是:它前面的值往后移动。这个算法需要下标为0的位置作为哨兵#include  <stdio.h>

void InsertSort(int *L)
{
	int i, j;
	for (i = 2; i < 11; i++)
	{
		if (L[i] < L[i - 1])
		{
			L[0] = L[i];
			for (j = i - 1; L[j] > L[0]; j--)
			{
				L[j + 1] = L[j];
			}
			L[j + 1] = L[0];  //因为循环最后的j--了
		}
	}
}
int main()
{
	int L[11] = { -1,3,2,5,6,8,1,9,4,7,0 };
	int i = 1;
	for (; i <= 10; i++)
	{
		printf("%d ", L[i]);
	}
	printf("\n");
	InsertSort(L);
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", L[i]);
	}
	printf("\n");
	return 0;
}

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!