| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 641 人关注过本帖
标题:要实现一维数组,从小到大排序,应该如何编写?
收藏  订阅  推荐  打印 
YAXIONG
Rank: 2
等级:注册会员
帖子:123
积分:1330
注册:2006-11-6
要实现一维数组,从小到大排序,应该如何编写?

请问,若有数组Dim ss() As String ={6,5,8,9},要实现该数组,从小到大应该怎么编写程序呀??
知道的,说下好吗??非常感谢!!!
搜索更多相关主题的帖子: 从小到大  编写  
2006-11-21 12:55
梓风
Rank: 2
等级:注册会员
威望:4
帖子:180
积分:1962
注册:2006-10-22

冒泡排序
Dim ss As String() = {6, 5, 2, 7}
Dim i As Integer
Dim j As Integer
Dim Temp '不定义变量类型,以自动适应数组Ar的类型
Dim Flag As Boolean
Dim n As Integer = ss.Length - 1
For i = 1 To n
Flag = False
'从第1个元素开始,比较每两个相邻元素的大小,让大元素下沉,小元素上浮
'经过一轮循环,可使数组中最大元素下沉到数组最底部
'进入下一轮循环,只对前 n - i 个元素进行相邻比较(已排到后面的不用比较)
For j = 0 To n - i
If ss(j) > ss(j + 1) Then
Temp = ss(j)
ss(j) = ss(j + 1)
ss(j + 1) = Temp
Flag = True '如果有排序行为,则设为 True
End If
Next
If Flag = False Then '如未排序,说明已完成整个排序过程,退出
Exit For
End If
Next


等待相逢
2006-11-21 13:24
很受伤
Rank: 1
等级:新手上路
帖子:7
积分:170
注册:2006-11-21

不错

支持

2006-11-21 14:07
很受伤
Rank: 1
等级:新手上路
帖子:7
积分:170
注册:2006-11-21

不过双重循环为什么定义FLAG呢?


完了不就自动退出了吗?

而且如果有一个FLASE就退出,很有可能出错的.....
2006-11-21 14:11
YAXIONG
Rank: 2
等级:注册会员
帖子:123
积分:1330
注册:2006-11-6

恩,实在是非常感谢啊!!

喜欢~左岸~~..
2006-11-21 15:02
梓风
Rank: 2
等级:注册会员
威望:4
帖子:180
积分:1962
注册:2006-10-22

Dim i, j As Integer
Dim min, index As Integer
Dim t As Integer
Dim a As Integer() = {32, 23, 14, 35, 64, 21, 36, 87, 7, 8}
For i = 0 To a.Length - 2
min = a(i)
index = i
For j = i + 1 To a.Length - 1
If min > a(j) Then
min = a(j)
index = j
End If
Next j
If index <> i Then
t = a(i)
a(i) = a(index)
a(index) = t
End If
Next i

等待相逢
2006-11-21 15:53
梓风
Rank: 2
等级:注册会员
威望:4
帖子:180
积分:1962
注册:2006-10-22

选择排序

等待相逢
2006-11-21 15:54
梓风
Rank: 2
等级:注册会员
威望:4
帖子:180
积分:1962
注册:2006-10-22

插入排序
Dim list As Integer() = {1, 13, 3, 6, 10, 55, 98, 2, 87, 12, 34, 75, 33, 47}
For i As Integer = 1 To list.Length - 1
Dim t As Integer = list(i)
Dim j As Integer = i
While ((j > 0) And (list(j - 1) > t))
list(j) = list(j - 1)
j = j - 1
End While
list(j) = t
Next
ListBox1.Items.Clear()
For i = 0 To list.Length - 1
ListBox1.Items.Add(list(i).ToString)
Next

等待相逢
2006-11-21 16:16
YAXIONG
Rank: 2
等级:注册会员
帖子:123
积分:1330
注册:2006-11-6

感谢各位的帮助呀!!


喜欢~左岸~~..
2006-11-22 22:42
xinfresh
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:13
帖子:594
积分:6224
注册:2006-1-13

是不是有个方法名叫:sort
不知道能不能用于String


E-mail:xinfresh@163.comQQ:383094053校内:http://xiaonei.com/getuser.do?id=234719042
2006-11-23 12:42
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.054871 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved