数据结构笔记--插入排序
插入排序就是将抽出的牌插入合适的位置。主要分为三个步骤: 1、从牌组抽出一张牌,记录牌的位置和数字。(从第二张牌开始抽,也就是下标为1,结束这3个步骤后再抽第三张牌重新进行这三个步骤,直到最后一张牌插入完成) 2、将抽出的牌和左边的牌逐个比对(在牌的左范围内从右到左比对),将满足条件的牌逐个向右挪一位,直到条件不满足为止,此时会出现一个空位。 3、将牌插入到空位上。 代码实现如下
template<class T>
void InsertSort(T arr[],N){
int p;int i;T temp;
for(p=1;p<N;p++){
temp=arr[p];//1、抽牌
for(i=p;i>0&&arr[i-1]>tmp;i--)
{
arr[i]=arr[i-1];//2、挪牌
}
arr[i]=tmp;//3、插牌
}
}