目录

1.首先
2.环境
3. 使用的数组
4. 什么是选择排序?
4-1. 分拣流程
4-2. 最终代码
五、总结
6. 参考
7. 最后

1.首先

我的老板曾经要求我使用“选择排序”和“冒泡排序”对数组进行排序作为家庭作业。

“排序 = 按顺序重新排列 ID 的东西”这是我的印象,所以我很惊讶有不同类型的排序和不同的处理速度。

这一次,我想根据当时的备忘录来组织选择排序。

2.环境

  • windows 10 版本 21H2
  • 微软-IIS 10.0
  • ASP 5.8 (16384)

3. 使用的数组

我想按升序(1,2,...,10)对下面的数组进行排序。

【VBScript】ソート方法を整理する(選択ソート編)

▼代码

'# 配列と変数の宣言
Dim arrNum : arrNum = Array(3,4,2,8,7,5,9,6,10,1)
Dim i,tmp

'# 選択ソート前の配列
For i = 0 To UBound( arrNum )
    tmp = join(arrNum, ",")
Next

'#カンマで結合した配列を出力
Response.Write tmp '# 3,4,2,...

UBound函数:可以得到数组索引的最大值

4. 什么是选择排序?

选择排序(基本选择方法)和更多报价

选择排序是一种从目标数据中寻找最小值(或最大值),将其替换为最大值,并重复此过程对整个数据进行排序的方法。

如果您在最后一个元素之前执行此操作,则最后一个元素将被固定并且整体将对齐。

【VBScript】ソート方法を整理する(選択ソート編)

4-1. 分拣流程

选择排序有两件事要做:

①求最小值
②替换为第 i 个

①求最小值

假设最小值为m_indexth,则与从下一个元素(m_index + 1)到最后一个数组中具有最大值的元素(UBound( 配列 ))的其他元素进行比较。

如果jth 元素小于m_indexth 元素,则该元素成为最小值,因此最小值的位置发生变化并变为m_index = j

Dim j

m_index = i '# 最小値の場所(m_index番目を最小とみなす)
For j = i + 1 To UBound( arrNum )
    If arrNum( m_index ) > arrNum(j) Then
        m_index = j
    End If
Next

②替换为第 i 个

由于我们能够在①中找到最小值,我们将用第 i 个值替换最小值。

If m_index <> i Then
    tmp = arrNum(i)
    arrNum(i) = arrNum(m_index)
    arrNum(m_index) = tmp 
End If

这次为了更换两件东西,是准备三个盒子并更换的形象。

【VBScript】ソート方法を整理する(選択ソート編)

4-2. 最终代码

这是最终的代码。

<%@ Language = VBScript codepage = 65001 %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<%
Dim arrNum : arrNum = Array(3,4,2,8,7,5,9,6,10,1)
Dim tmp
Dim i, j, m_index

'# 選択ソート前
For i = 0 To UBound( arrNum )
    tmp = join(arrNum, ",")
Next

Response.Write tmp & "<br />" '# 3,4,2,...

For i = 0 To UBound( arrNum ) - 1
    '# m_index番目以降の最小値がどこにあるのかを探す
    m_index = i '# 最小値の場所(m_index番目を最小とみなす)
    For j = i + 1 To UBound( arrNum )
        If arrNum( m_index ) > arrNum(j) Then
            m_index = j
        End If
    Next
    
    If m_index <> i Then
        '# 配列のi番目とm_index番目を入れ替える
        tmp = arrNum(i)
        arrNum(i) = arrNum(m_index)
        arrNum(m_index) = tmp 
    End If
Next

'# 選択ソート後
For i = 0 To UBound( arrNum )
    tmp = join(arrNum, ",")
Next
Response.Write tmp & "<br />" '# 1,2,3,...,10
%>

五、总结

这一次,排序是使用 VBScript 作为选择排序完成的。

我想继续了解“分解我想做的事情并将其放入代码中”。

我打算组织其他方法,所以如果你能一起阅读,我将不胜感激。

6. 参考

7. 最后

如果有任何错误或意见,请告诉我。

感谢您的阅读。


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308626428.html

相关文章: