第1个回答 2006-10-10
首先声明:我学的是VB,其它语言我不懂!但是这些排序方法是通用的!
我先举一个选择排序的例子:
For i = 1 To n - 1
p = i
For j = i To n
If a(p) > a(j) Then
p = j
End If
Next j
If p <> i Then t = a(i): a(i) = a(p): a(p) = t
Next i
再举一个冒泡排序法的例子:
For i = 1 To n - 1
For j = 1 To n - i
If a(j) > a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
两个比较,选择排序法效率更高一点!
你可以在上面的代码中看的出来!
第2个回答 2020-01-07
冒泡排序
1、排序方法
将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。
(1)初始
R[1..n]为无序区。
(2)第一趟扫描
从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key
=i;j--)
//对当前无序区R[i..n]自下向上扫描
if(R[j+1].key
评论
0
0
加载更多