【各种排序系列之】插入排序法
算法思想:
在已形成的有序表中线性查找,并在适当位置插入,把原来位置上的元素向后顺移。
//基于指针的插入排序 /*假设有人想排序“eagle”,“cat”,“ant”,“dog”,“ball”这些字符串。使用基于指针的存储,即一个数组包含了指向实际信息的指针,而不是直接将信息存储在数组元素的存储空间里面。使用这种方式,可以灵活地存储和排序任意复杂结构的数据。 */ void sortPointers(void **ar, int n, int(*cmp)(const void *, const void *)) //对一个数组ar进行排序,并且其中的元素可以用提供的比较函数cmp进行比较 { int j; for(j = 1; j<n; j++) { int i = j-1; void *value = ar[j];//保存当前值。 while(i >= 0 && cmp(ar[i],value) >0) { ar[i+1] = ar[i]; i--; } ar[i+1] = value; } }
posted on 2013-10-26 20:42 Allen Blue 阅读(119) 评论(0) 编辑 收藏 举报