常用排序算法之插入排序与希尔排序
来源:互联网 发布:淘宝店铺免费代码 编辑:程序博客网 时间:2024/04/30 04:26
'插入排序
Option Explicit
Dim Result, I
Dim TestData(100)
const N = 100
Randomize
For I = 0 To N - 1
TestData(I) = ROUND(RND() * 32768)
Next
'插入排序
Sub ISort(byRef Array, low, hi)
Dim i, j, t
For i = low+1 To hi
t = Array(i)
j = i - 1
Do
If j < low Then
Exit Do
End If
If Array(j) > t Then
Array(j+1) = Array(j)
j = j - 1
Else
Exit Do
End If
Loop
Array(j+1) = t
Next
End Sub
ISort TestData, 0, N - 1
For I = 0 To N - 1
Result = Result & TestData(I) & VbTab
Next
MsgBox(Result)
Option Explicit
Dim Result, I
Dim TestData(100)
const N = 100
Randomize
For I = 0 To N - 1
TestData(I) = ROUND(RND() * 32768)
Next
'插入排序
Sub ISort(byRef Array, low, hi)
Dim i, j, t
For i = low+1 To hi
t = Array(i)
j = i - 1
Do
If j < low Then
Exit Do
End If
If Array(j) > t Then
Array(j+1) = Array(j)
j = j - 1
Else
Exit Do
End If
Loop
Array(j+1) = t
Next
End Sub
ISort TestData, 0, N - 1
For I = 0 To N - 1
Result = Result & TestData(I) & VbTab
Next
MsgBox(Result)
'希尔排序
Option Explicit
Dim Result, I
Dim TestData(100)
const N = 100
Randomize
For I = 0 To N - 1
TestData(I) = ROUND(RND() * 32768)
Next
Sub SortWithStep(byRef Array, low, hi, stp)
Dim s, i, j, t
For s = 0 To stp-1
For i = s+low+stp To hi Step stp
t = Array(i)
j = i-stp
Do
If j < s+low Then
Exit Do
End If
If Array(j) > t Then
Array(j+stp) = Array(j)
j = j - stp
Else
Exit Do
End If
Loop
Array(j+stp) = t
Next
Next
End Sub
'希尔排序
Sub ShellSort(byRef Array, low, hi)
Dim Step
Step = Int((hi-low+1)/2) + 1
Do
SortWithStep Array, low, hi, Step
If Step < 1 Then
Exit Do
Else
Step = Int(Step/2)
End If
Loop
End Sub
ShellSort TestData, 0, N - 1
For I = 0 To N - 1
Result = Result & TestData(I) & VbTab
Next
MsgBox(Result)
Option Explicit
Dim Result, I
Dim TestData(100)
const N = 100
Randomize
For I = 0 To N - 1
TestData(I) = ROUND(RND() * 32768)
Next
Sub SortWithStep(byRef Array, low, hi, stp)
Dim s, i, j, t
For s = 0 To stp-1
For i = s+low+stp To hi Step stp
t = Array(i)
j = i-stp
Do
If j < s+low Then
Exit Do
End If
If Array(j) > t Then
Array(j+stp) = Array(j)
j = j - stp
Else
Exit Do
End If
Loop
Array(j+stp) = t
Next
Next
End Sub
'希尔排序
Sub ShellSort(byRef Array, low, hi)
Dim Step
Step = Int((hi-low+1)/2) + 1
Do
SortWithStep Array, low, hi, Step
If Step < 1 Then
Exit Do
Else
Step = Int(Step/2)
End If
Loop
End Sub
ShellSort TestData, 0, N - 1
For I = 0 To N - 1
Result = Result & TestData(I) & VbTab
Next
MsgBox(Result)
- 常用排序算法之插入排序与希尔排序
- 排序算法之直接插入排序与希尔排序
- 排序算法--插入排序之希尔排序
- 排序算法-插入排序之希尔排序
- 【算法】简单插入排序与希尔排序
- 数据结构之插入排序与希尔排序
- 插入排序算法之直接插入排序和希尔排序
- 常用的排序算法:插入排序,希尔排序,冒泡排序,选择排序,快速排序,归并排序
- 插入排序算法-希尔排序
- 希尔排序-插入排序算法
- 插入排序----希尔排序算法
- 常用排序算法之希尔排序法
- 常用排序算法之希尔排序
- Java常用排序算法之希尔排序
- 常用排序算法之希尔排序
- 常用排序算法之希尔排序
- 常用排序算法之希尔排序
- 常用排序算法之希尔排序
- 考查嵌入式C开发人员的最好的0x10道题
- 固定的左侧移动导航菜单
- 常用排序算法之堆排序与快速排序
- 九九乘法表
- Oracle数据库的物理结构
- 常用排序算法之插入排序与希尔排序
- C语言中类型转换和字节对齐
- 常用排序算法之归并排序
- 通过log4j日志异步化大幅提升系统性能
- 常用排序算法之计数排序,基数排序与桶排序
- 让你帖子不沉的十大方法
- 静态导航菜单
- 关于Linux系统下内存泄漏的检查方法
- 超经典的50个msn签名