排序

一.插入排序

1.算法思想

     升序:从左往右,如a[2]<a[1],swap(a[1],a[2]),此时前面的数组有序,依次找到a[3],a[4],a[5]的位置,直到a[n];

             类比洗牌,左手的牌有序,插入一张牌,则将这张牌依次与左手的牌比较,直到找到让左手牌有序的位置

void cmp(int a[])
{
	for(int i=1;i<=n;i++)
	{
		int s=a[i];//抽出一张牌
		int j=i-1;
		while(j>0&&s<a[j])//与前面的有序牌比较,找到当前牌的位置
		{
			a[j+1]=a[j];
			j--;
		}
		a[j+1]=s;//已找到位置
	}
}
原文地址:https://www.cnblogs.com/clanguageweaver/p/6662183.html