八大排序算法总结 1-直接插入排序

1.直接插入排序

原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,

最终将所有无序区元素都移动到有序区完成排序。

要点:设立哨兵,作为临时存储和判断数组边界之用。

实现:

用C#源代码进行了实现

Void InsertSort(Node L[],int length)

{

Int i,j;//分别为有序区和无序区指针

for(i=1;i<length;i++)//逐步扩大有序区

{

j=i+1;

if(L[j]<L[i])

{

L[0]=L[j];//存储待排序元素

While(L[0]<L[i])//查找在有序区中的插入位置,同时移动元素

{

L[i+1]=L[i];//移动

i--;//查找

}

L[i+1]=L[0];//将元素插入

}

i=j-1;//还原有序区指针

}

}

   

   这个算法的复杂度是 O(n^2) 他的算法的复杂度与BubbleSort 的算法的复杂度一致,但是其理解就是在数组中进行了插入要进行排序的数据

posted on 2012-09-20 08:17  laozhu1124  阅读(2254)  评论(3编辑  收藏  举报

淘宝免费计数器