数据结构---直接插入排序
来源:互联网 发布:淘宝开店快递费用标准 编辑:程序博客网 时间:2024/05/22 08:28
直接插入排序是最简单的排序算法
算法思想:将第一个数据元素看成是一个有序的子序列,再依次从第二个数据元素起逐个插入到这个有序的子序列中。
设 i 为第 i 个插入到序列中的元素,那么 elem[i] 插入到elem[0]~~elem[i-1] 构成的有序子序列中。
在进行插入时注意要从后向前逐一比较,并且在比较时一定要注意边界问题 i 与 j ,由于第一个元素直接有序,因此排序直接从第二个元素开始,这就是i从1 开始的原因。
而 j 则是从当前待插入元素的前一个开始即 i-1。
代码如下:
bool InsertSort(int *arr,int len)
{
for(int i=1; i<len; ++i)
{
int temp=arr[i];
for(int j=i-1; j>=0; --j)
{
if(temp<arr[j])
{
arr[j+1] = arr[j];
}
else
break;
}
}arr[j+1] = temp;
return true;
}
直接插入排序时间复杂度:O(n^2), 空间复杂度为O(1)
当序列越接近有序时间复杂度越小,最好的时间复杂度为O(n)
直接插入排序适合数据元素较少的情况,数据元素较大则不宜用直接插入排序
0 0
- {数据结构}直接插入排序
- 数据结构--直接插入排序
- 【数据结构】直接插入排序
- 数据结构---直接插入排序
- 数据结构-直接插入排序
- 数据结构:直接插入排序
- 【数据结构】直接插入排序
- 数据结构----直接插入排序
- 数据结构--直接插入排序
- [数据结构]直接插入排序
- 数据结构---直接插入排序
- 数据结构 直接插入排序
- 数据结构直接插入排序
- 数据结构-插入排序-直接插入排序
- 数据结构之直接插入排序
- 数据结构--直接插入排序实现
- C++数据结构--直接插入排序
- 数据结构之 直接插入排序
- iPhone - NSFileManager的读写操作(上)
- C++学习笔记-静态成员注意事项
- sql server 2005中新增的bulk功能
- 我所理解的示例项目附源码及运行的GIF效果图
- 屏幕下拉框
- 数据结构---直接插入排序
- AppDelegate.m中的常用的方法介绍,以及ios程序的状态
- Android JNI浅析(2)
- 《Introduction to Secure Sockets Layer》文档下载
- UIImageView 动画
- hadoop学习笔记(5)-运行任务(Job)小结:第三方jar包、hadoop jar命令
- Mac下显示或隐藏文件的命令方法
- 如何添加马云,马化腾,李彦宏的微信
- Unity Bug