排序算法(三)——插入排序
来源:互联网 发布:c# vsa javascript 编辑:程序博客网 时间:2024/06/14 02:48
(一)直接插入排序
最差时间复杂度:O(n^2)
最优时间复杂度:O(n)
平均时间复杂度:O(n^2)
稳定性:稳定
直接插入排序(Insertion Sort),是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序算法的一般步骤:
1.从第一个元素开始,该元素可以认为已被排序;
2.取出下一个元素,在已经排序的元素序列中从后向前扫描;
3.如果该元素(已排序)大于新元素,将该元素移到下一个位置;
4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
5.将新元素插入到该位置后,重复2~5
3、插入排序 void insertSort(*a,int len){ for(j=1;j<len;j++){ key=a[j]; i=j-1; while(i>0&a[i]>key){ //当前值比key大,向后移动一位为key让出位置 a[i+1]=a[i]; i--; } a[i+1]=key; //当前值比key小,key插入当前位置的后一位 } }
0 0
- 排序算法三——插入排序
- 排序算法(三)——插入排序及改进
- 排序算法自我练习(三)——插入排序
- 排序算法(三)——插入排序
- 排序算法(三)——插入排序及改进
- 排序算法(三) —— 插入排序
- 排序算法(三)——插入排序及改进
- 排序算法——插入排序(直接插入排序、折半插入排序、希尔排序)
- 排序算法(三)之插入排序
- 排序算法总结(三)插入排序
- 排序算法(三)直接插入排序
- 排序算法(三)直接插入排序
- 排序算法(三)- 直接插入排序
- 排序算法(三)插入排序
- 排序—插入排序算法
- 排序算法—插入排序
- 基础排序算法(三)——对半插入排序
- 一句话明白排序算法之三——插入排序
- Windows核心编程 第七章 线程的调度、优先级和亲缘性(上)
- Web.py 的搭建(Nginx+web.py+MySQL)
- 二分-Codeforces 371C Hamburgers
- CodeForces 588B Duff in Love
- hdu 5890 Eighty seven DP
- 排序算法(三)——插入排序
- UML结构建模图———组件图
- linux并行集群的搭建
- 排序:交换排序——冒泡排序法
- Volley网络请求框架
- 动画【Android】
- 1034. Head of a Gang (30)
- 2016ICPC青岛赛区网络赛 1001
- XStream: Java对象和XML之间相互转换的利器