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 的算法的复杂度一致,但是其理解就是在数组中进行了插入要进行排序的数据

相关文章:

  • 2021-08-19
  • 2021-11-05
  • 2021-11-05
  • 2021-09-10
  • 2021-09-26
  • 2022-12-23
  • 2021-09-19
猜你喜欢
  • 2021-11-05
  • 2021-11-05
  • 2021-11-09
  • 2021-08-03
  • 2022-03-01
  • 2021-07-20
  • 2021-05-01
相关资源
相似解决方案