网站设计收费标准,无极在线招聘最新消息,网站建设会计分录怎么做,免费推广网站入口2023燕插入排序是啥类型的排序
插入类型的
插入排序经常用在啥类型场景下
用在有序序列下的基础上插入新数据
时间复杂度分析
如果是有序的基础下#xff0c;最好的时间复杂度是O#xff08;n#xff09;;
普通情况下是O#xff08;n^2#xff09;
插入排序的原理是啥最好的时间复杂度是On;
普通情况下是On^2
插入排序的原理是啥
插入排序就是把待插入数据讲已排好顺序的树进行循环比较然后放在合适位置
例如
已排序好的树有1 3 6
待排序数是5把5依次和上面数据进行比较最终确定放在3后面
即1 3 5 6
代码实战
本次代码实现有从后往前循环比较
//插入排序本次实现从小到大排序void insert_sort(int nums[],int len){int i0,j0;for(i1;ilen;i)//外层循环控制待排序数{int insertVal nums[i];//用来临时存储带插入的数据//从待插入数据的位置的前一个开始往前面循环比较for(ji-1;j0 nums[j]insertVal;--j)//前面的数据大于待插入数据进入函数{nums[j1]nums[j]; }nums[j1] insertVal;//插入待排序数据}}
可执行代码如下
#includestdio.h
#includestring.h
#includetime.h
#includestdlib.hvoid swap(int a,int b)
{int tmpa;ab;btmp;
}void rangnums(int nums[],int len)
{srand(time(NULL));//初始化数组printf(初始化数组:);for(int i0;ilen;i){nums[i]rand()%1001;printf(%d ,nums[i]);}puts();
}void print(int a[],int len)
{for(int i0;ilen;i){printf(%d ,a[i]);}puts();
}//插入排序void insert_sort(int nums[],int len){int i0,j0;for(i1;ilen;i){int insertVal nums[i];//用来临时存储带插入的数据for(ji-1;j0 nums[j]insertVal;--j){nums[j1]nums[j];}nums[j1] insertVal;//插入待排序数据}}int main()
{int a[10]{92 ,79 ,49, 59, 86 ,38, 94, 64, 92, 3};rangnums(a,10);insert_sort(a,10);print(a,10);}
【注】数据结构不懂一定要动手画图