厦门国外网站建设公司排名,wordpress音乐外链,网站建设合同协议,社交和门户网站的区别前言#xff1a;插入排序算法是所有排序方法中最简单的一种算法#xff0c;其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中#xff0c;最终得到的序列就是已经排序好的数据。直接插入排序是插入排序算法中的一种#xff0c;采用的方法是#xff1a;在…前言插入排序算法是所有排序方法中最简单的一种算法其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中最终得到的序列就是已经排序好的数据。直接插入排序是插入排序算法中的一种采用的方法是在添加新的记录时使用顺序查找的方式找到其要插入的位置然后将新记录插入。很多初学者所说的插入排序实际上指的就是直接插入排序算法插入排序算法还包括折半插入排序、2-路插入排序表插入排序和希尔排序等。直接插入排序的基本操作是将一个记录插入到已经排好的有序表中。先选定一个位置i插入排序将i左侧比位置i数值大的数值全部右移然后将原来i对应的值插入回去。voidInsertSort(int*p){int i,j;inttmp0;for(i1;i10;i) {if(p[i-1]p[i]) {tmp p[i];//将p[i]左边比p[i]大的全部左移要先将其赋给一个缓存变量for(ji-1;p[j]tmp;j--) {p[j1]p[j]; }p[j1]tmp; } }}过程先将p[i]的值赋给tmp然后i左侧的数值与tmp比较比tmp大则右移一位不比tmp大则将tmp插入回去。最好情况下即要排序的序列本身是有序的第7行的比较一共执行了n-1次没有移动记录时间复杂度为O(n)。最坏情况下需要比较23...n(n2)(n-1)/2次移动次数为(n4)(n-1)/2时间复杂度为O(n2)