几个排序算法的实现代码,具体的原理可查看数据结构教科书,这里主要是为了自己时常回顾,方便面试。
插入排序
void InsertionSort(ElementType A[], int N)
{ /* 插入排序 */
int P, i;
ElementType Tmp;
for(P=1; P<N; P++)//不断加入新的元素,在前面已经排好序的序列
{ //中找到它应该被插入的位置
Tmp = A[P];
//下标i为试探新元素P应该放置的位置
//从后往前试探,0位置不用试探,如果到达了0位置,直接停下来
//不用判断,已经找到了,至于除0以外的其它位置,试探时需要加上判断条件
for(i=P; i>0 && A[i-1]>Tmp; i--)
A[i] = A[i-1];
A[i] = Tmp;
}
}