算法与数据结构--插入排序(InsertSort)
来源:互联网 发布:电子教室软件哪个好 编辑:程序博客网 时间:2024/06/10 21:28
1.算法思想:从数组的第二个元素开始依次与前面的前面的元素进行比较,若比前一个元素小,则交换位置。直到不小于前一个元素为止。
2.算法实现:
for(int i = 1; i++ ;i <n) for(int j = i; j > 0 && arr[j] < arr[j-1] ;j--) swap(arr[j],arr[j-1])
3.要点:插入排序在最差的情况下时间复杂度是n2,可内层循环可提前结束,因为对于基本有序的数组进行排序的话,插入排序的效果还是挺好的。
4.改进:改进思想,一次swap交换是三次赋值,如果在比较的过程中只把当前比较的数值拷贝一个副本,而不着急交换的话会节省大量的时间,代码如下
for(int i = 1;i < n;i++) T e = arr[i]; int j; //j保存元素e应该插入的位置 for(j = i;j > 0 && arr[j-1] > e;j--) arr[j] = arr[j-1]; arr[j] = e;
这样就会节省很多次交换所花费的时间,试想若对一个完全有序的数组排序,则内层循环均会提前终止,时间复杂度相当低
0 0
- 算法与数据结构--插入排序(InsertSort)
- 数据结构-插入排序InsertSort
- InsertSort 插入排序算法
- 【数据结构】中的插入(InsertSort)排序
- 排序算法-插入排序 insertSort
- 排序算法-InsertSort-插入排序
- 插入排序算法(InsertSort)
- 经典算法-插入排序Insertsort
- 算法学习----->Insertsort(插入排序)
- 数据结构--插入排序(InsertSort)思想与实现
- 经典排序算法(2) -插入排序 InsertSort
- 算法导论2.1-insertsort算法(插入排序)
- 插入排序InsertSort
- insertSort - 插入排序
- 插入排序 InsertSort
- 插入排序 InsertSort
- 插入排序(InsertSort)
- 插入排序InsertSort
- gulp-autoprefixer
- Java反射机制
- 初来乍到
- Fresco图片加载框架学习和那些坑
- Linux-ubuntu 日记( 2 )- 安装Java
- 算法与数据结构--插入排序(InsertSort)
- 第七章 课后简答答案
- 用tensorflow画ROC曲线
- CTF隐写之文件怎么打不开?=0.0=
- 【9935】聚会的快乐
- Android 内核驱动开发 问题记录(二)
- 栈帧详解———函数调用原理
- PAT---A1012. The Best Rank (25)
- auto真是太好用了!!