求解一个“排序”的问题。

shdfl 2002-08-28 01:47:08

如何将一个由N个不同的正整数组成的数字组合,按照递增的方式排列?

例如:将下面的组合

A(25):06,14,21,23,25,07,10,17,22,09,11,12,13,20,01,15,19,05,24,08,03,04,02,16,18

重新排列,使其变成:

B(25):01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25


数据源 A(1) - A(25) 的数值没有重复,但大小顺序是不固定的。

如果不使用数据库的字段进行记录并转换,代码该怎么写?
...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2002-08-30
  • 打赏
  • 举报
回复
<script>
function s1(a,b){return a-b}
function s2(a,b){return b-a}
var arr=[06,14,21,23,25,07,10,17,22,09,11,12,13,20,01,15,19,05,24,08,03,04,02,16,18]

alert("升序:"+arr.sort(s1))
alert("降序:"+arr.sort(s2))
</script>
meizz 2002-08-30
  • 打赏
  • 举报
回复
秋水就是秋水,高!
ehom 2002-08-28
  • 打赏
  • 举报
回复
要哪种?冒泡排序,插入排序还是选择排序!这种最最基础的算法问题,随笔找个搜索引擎也能找到一堆各种语言的代码!

Sub BubbleSortNumbers(iArray As Variant)
Dim lLoop1 As Long
Dim lLoop2 As Long
Dim lTemp As Long
For lLoop1 = UBound(iArray) To LBound(iArray) Step -1
For lLoop2 = LBound(iArray) + 1 To lLoop1
If iArray(lLoop2 - 1) > iArray(lLoop2) Then
lTemp = iArray(lLoop2 - 1)
iArray(lLoop2 - 1) = iArray(lLoop2)
iArray(lLoop2) = lTemp
End If
Next lLoop2
Next lLoop1
End Sub

Sub SelectionSortNumbers(vArray As Variant)
Dim lLoop1 As Long
Dim lLoop2 As Long
Dim lMin As Long
Dim lTemp As Long
For lLoop1 = LBound(vArray) To UBound(vArray) - 1
lMin = lLoop1
For lLoop2 = lLoop1 + 1 To UBound(vArray)
If vArray(lLoop2) < vArray(lMin) Then lMin = lLoop2
Next lLoop2
lTemp = vArray(lMin)
vArray(lMin) = vArray(lLoop1)
vArray(lLoop1) = lTemp
Next lLoop1
End Sub

Sub ShellSortNumbers(vArray As Variant)
Dim lLoop1 As Long
Dim lHold As Long
Dim lHValue As Long
Dim lTemp As Long
lHValue = LBound(vArray)
Do
lHValue = 3 * lHValue + 1
Loop Until lHValue > UBound(vArray)
Do
lHValue = lHValue / 3
For lLoop1 = lHValue + LBound(vArray) To UBound(vArray)
lTemp = vArray(lLoop1)
lHold = lLoop1
Do While vArray(lHold - lHValue) > lTemp
vArray(lHold) = vArray(lHold - lHValue)
lHold = lHold - lHValue
If lHold < lHValue Then Exit Do
Loop
vArray(lHold) = lTemp
Next lLoop1
Loop Until lHValue = LBound(vArray)
End Sub

给出三种排序方法,自己参考下!

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧