插入排序的优化,比较插入同步进行
来源:互联网 发布:尺八制作图数据 编辑:程序博客网 时间:2024/06/05 17:07
算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。
网上找到的程序多是先比较找到插入的位置,再移动位置。还有文章说将查找位置的过程用二分法进行优化,其实根本没有,可以将比较插入同步进行,比较查找的同时移动位置,效率高得多。
经测试,5000个随机数,本法比传统方法快3倍,难以置信。
'比较插入数字和挪位一起进行,无需二分法Sub InsertSortN(LngArr() As Long, _ Optional LB As Long, Optional UB As Long = -9, Optional Descending As Long) Dim i As Long, j As Long, k As Long Dim Tmp As Long, Ltmp As Long If UB = -9 Then UB = UBound(LngArr): LB = LBound(LngArr) For i = 1 To UB Tmp = LngArr(i): For j = i - 1 To 0 Step -1 ' 比较插入数字和挪位一起进行 If (Descending = 0 And Tmp >= LngArr(j)) Or (Descending = 1 And Tmp <= LngArr(j)) Then Exit For LngArr(j + 1) = LngArr(j): Next j LngArr(j + 1) = Tmp: Next iEnd Sub
0 0
- 插入排序的优化,比较插入同步进行
- 插入排序的优化
- 插入排序的优化
- 优化的插入排序
- 冒泡、插入排序的比较
- 直接插入排序的优化
- 插入排序、比较排序
- 冒泡排序,选择排序,插入排序,快速排序的比较及优化
- 插入排序与选择排序的比较
- 插入排序和希尔排序的比较
- 插入排序与折半插入排序比较
- 冒泡,选择,插入排序的效率比较
- 插入排序需要比较的次数
- 插入排序算法优化
- 插入排序及其优化
- 插入排序及优化
- 插入排序 优化
- 插入排序及其优化
- 如何用matlab画正态分布曲线
- 两个升序表,打印L中那些由P所指定的位置上的元素 java实现
- LCS 解决最长子串(c++代码)
- Menu 实例
- 推荐一个免费的web打印插件
- 插入排序的优化,比较插入同步进行
- android imageview 显示方式设置
- 数据库存储过程
- 网站页面在浏览器中设置样式格式。
- Android实际开发中的bug总结与解决方法(一)
- ubuntu系统下usb转serial的使用
- 各种JS验证和操作
- ASP.NET Web API 简介
- CISCO和H3C交换机备份配置